函数原型
函数原型就是函数声明,常放在头文件里。
函数参数
f(void)==f()
f(int*)==f(int[])==f(int[10])
默认参数
- 在声明或定义中写默认参数,声明中必须写(不然人家咋知道调用的是谁呢)
1 | double sqrt(double f=1.0); |
一旦某个参数开始指定默认值,它右边的所有参数都必须指定默认;
一旦某个参数开始取默认值,它右边的所有参数都必须取默认;
1 | int f(int i1,int i2=2,int i3=0); //正确 |
引用的作用域
不同作用域内,允许说明不同的默认形参值。
1 | int add(int x = 5, y = 6); |
函数和引用
传递引用
- 需要从函数中返回多于一个值。
- 需要修改实参值本身。
- 传递地址可以节省复制大量数据的内存空间和时间。
返回引用
int & index(int i){return a[i];}
有了引用,甚至能写这种骚代码:
index(2) = 30;
内联函数
加 inline
即可。能够节省开销。
内联函数不允许有循环和 switch
语句,否则按照普通函数来处理。
结构、类的成员函数
具体见结构的博客。