1,定义函数
语法形式:
返回类型 函数名(参数列表) { 函数体 }
函数必须指定一个返回类型
函数返回类型可以是内置类型、复合类型或用户自定义的类类型
函数和内置数组不能用作返回类型,但是,可以返回函数指针和数组首地址
如果函数不返回任何结果,将其返回类型声明为void
2,调用函数
调用时的两项工作
一是用实参初始化函数对应的形参
二是将控制权转移给被调用的函数
3,参数传递(实参一定是确定值的量,不是实参类型)
传引用,按引用传递参数
*数组和函数作参数时必须传指针
*拷贝构造函数的参数必须传引用
当形参是引用类型时,对应的实参被称为按引用传递,或者传引用调用函数
此时,引用形参绑定到实参,是实参对象的别名
*指针参数传递
void pswap(int *pv1, int *pv2){
int t;
t = *pv1; *pv1 = *pv2; *pv2 = t; //间接访问
}
*数组参数
数组作参数时,将传递数组第一个元素的地址
数组的长度与参数声明无关,如果在函数内部要使用数组的长度,应该将它作为单独的一个参数
void foo( int *a );
void foo( int a[] );
void foo( int a[10] );
void foo( int a[], int size );
*引用参数传递
可以避免大对象参数的复制,且可以访问实参对象
将参数声明为const引用,避免在函数内部修改引用参数(STL的参数一般都要用const限定)
void rswap(int& rv1, int& rv2) {
int t;
t = rv1;
rv1 = rv2;
rv2 = t;
}