1. 函数的形参,实参,返回值,以及如何传参
变量:函数中要分辨形参/实参,实参类型应当与形参匹配,或者能够转换成形参类型。局部变量与全局变量的作用范围。函数内的局部变量作用在函数内,函数调用完,返回后即销毁;函数内可以定义静态变量,作用域可以延伸到函数外。
函数的声明和定义。函数声明可以定义在头文件(.h)文件中,定义则写到源文件中。
2. 函数的参数传递
非引用参数:
普通传值参数。此时实参拷贝给形参。由于是拷贝,形参与原参数是独立的,对参数的改变不会改变原参数。
传指针参数。使用指针参数可以访问原参数的地址,因此可以改变原参数的值。
/*
void func(int *p){
*p=0; //原实参数值修改为0
}
*/
传引用参数:
某些参数在拷贝时比较低效,且占用内存,或者不能拷贝。因此需要通过引用方式传参。引用形参也是对原变量的引用,对形参的修改就是对原变量的修改。
函数通过引用形参提供了一种获取运算结果的方式。
/*
int num=0;
iostream& func(iostream &os, int &num){num++; os<<num<<endl; return os;} //输出num=1;
*/
3. 传数组参数
数组形参与实参的使用。首先,数组有两个特性,即数组不允许拷贝,数组在使用时通常会转换为指向头元素的指针。
因此,传数组参数时,通常是使用指针或者引用传数组参数。