functionReview

函数的复习知识总结

1、如果函数体写在main函数下方,则需要声明

2、函数的定义

void:返回值类型,如果没有返回值,则写void

hello:函数名,函数名命名遵循标识符的命名规则

​ 标识由字母、数组、下划线组成

​ 注意:首字符不能是数字

不能与关键字相同

():括号里面是参数,如果没有参数,则不需要写,注意,括号时不能省略的

return:返回值,具体返回的值,代表函数执行的结果,返回值的类型要与函数名左边的类型一致

3、函数的调用

注意:不要写返回值类型,如果没有参数,也得加括号

4、传参:参数传递,由于有些函内部缺少一些数据,此时需要从外部传入,称之为传参

函数名后面括号的参数称之为行参,形式参数,用来保存外部传入的数据

行参的参数名一定要与函数内部调用的一致

如:int m = 5, n = 6;

​ //m,n:实参,实际传入函数的参数值,将实参的数据赋值给行参,变量名之间没有根本联系

1
2
3
4
5
int sum(int a, int b){int sum;sum = a + b;
//通常返回值的类型域返回值必须保持一致
//返回值一边为存储数据的变量或者表达式
return sum;
}

5、函数的参数传递

方法一:赋值传递:将实参的值传递给形参,形参的值发生改变,实参不受影响

​ 原因:实参和形参的地址不同

​ 方法二:地址传递:

​ & 取变量的地址

​ 地址传递:地址传递,将实参的地址传递给函数,在函数内部对地址进行改变

6、指针注意:* 在定义指针的时候,只起到标识的作用,标识定义的是一个指针变量;除了定义指针变量,其余的所有地方都表示取地址里面的内容

如int p;//这个只起到标识的作用

7、指针变量本质还是一个变量,保存的是地址。

指针变量一般需要指向一个已经开辟好的空间

将变量a的地址赋值给指针变量

Printf(“a=%d %d\n”,*p);//取变量的值

Printf(“p=%p %p\n”,p,&a);//取地址

Printf(“&p=%p\n”,&p); //取地址

8、数组传递参数

int a[6];

直接传递数组 void fun(int a[],int n)

传递数组的首地址:void fun(int *a,int n);