#include<stdio.h> //实参:函数原型中声明函数后面带的参数 int test(int x)//函数原型 { //函数体 printf("test里面的x地址=%p",&x); return x; } //变量的要素:变量名.变量类型.值.地址 int main() { int x=7,y=0; //实参:调用函数的时候调用的参数,x printf("main函数里x的地址=%p",&x); putchar('\n');…
如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品:从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值.这一节我们先来讲解C语言函数的参数,下一节再讲解C语言函数的返回值.C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的. 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参. 这里按自己的理解为什么说形参看作一个占位符,后文还说到在调用之前并…
package com.lv.study; public class Demo05 { public static void main(String[] args) { //我想要用什么分隔符进行分隔 你就得用啥分隔符分隔 System.out.println("床前明月光"); prt('-');//方法需要打印什么内容 需要我们自己穿进去值 System.out.println("疑是地上霜"); prt('=');//下面规定是char 是字符不是字符串所以要…
1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元.因此,形参只在函数内部有效.函数调用结束返回主调用函数后则不能再使用该形参变量.2.实参可以是常量.变量.表达式.函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参.因此应预先用赋值,输入等办法使参数获得确定值.3.实参和形参在数量上,类型上.顺序上应严格一致,否则就会发生类型不匹配的错误.4.在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参.…
有时候同一块内存空间存放类型不同,不同类型的变量共享一块空间. 结构体和共用体的区别: (1)结构体元素有各自单独空间,共用体元素共享空间,空间大小由最大类型确定. (2)结构体元素互不影响共用体赋值会导致覆盖. #include<stdio.h> #include<string.h> struct TestT { int data1;//4 char data2[125];//125 double data3;//8 }; union TestU { int data1;//4…
二级指针:可以理解为指向指针的指针,存放的是指针变量的地址. 下面用一级指针来保存一个指针变量的地址: #include<stdio.h> int main() { int *p1; int *p2; int data; p1=&data; p2=&p1; printf("p1保存的地址=%p\n",&data); printf("data=%d\n",*p1); printf("p2的地址=%p\n",&am…
指针函数:返回指针的函数,即函数返回一个地址.例如:int * a(int x,int y);由于()的优先级比*高,因此a先与()结合,a(int x,int y)显然是一个函数,函数前面带一个int * 表示返回值为int * 类型,也就是指向整型的地址. 输入一个学生编号,打印一个学生得成绩: #include<stdio.h> //定义一个指针函数:获取输入学生下标对应得地址,传数学生得下标和一个指针数组 int * getposPerson(int pos,int (*pstu)[4…
定义函数地址:如果在程序中定义了一个函数,那么在编译的时候,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(也叫入口地址)称为这个函数的地址. 和数组一样,数组名代表地址,而函数名表示函数地址. 函数的调用:可以通过函数名直接调用,也可以通过函数指针间接调用. 函数指针定义:函数返回值类型 (*函数指针变量名)(参数列表);   如:int (*p)(int data);其中,参数名可以省略不写 函数指针调用:(*函数指针变量名)(实参) #include<stdio.h> //定…
#include <stdio.h> void printData(int data) { printf("%d\n",data); } //形参中不存在数组的概念,即便中括号约定了数组的大小,也无效,传递的是一个地址,是数组的首地址 void printArr(int arry[], int len) { int i; printf("printArr: arry的大小是:%d\n",sizeof(arry));//总是输出8,是因为在os用8个字节来…
#include<stdio.h> #include<string.h> struct Student { char name[32]; int age; int height; int weight; }; int main() { struct Student Stus[3]={ {"hhh",12,45,45}, {"ttt",16,24,45}, {"kkk",18,23,45}, }; printf("…