函数声明
- 函数定义:函数如何实现
- 静态变量:静态变量只在执行线程第一次到达他的时候初始化。例如:
#include <iostream>
using namespace std;
void f(int a);
int main(){
f(3);
//f(4);
}
void f(int a){
//static int n = 0;
while(a --){
static int n = 0;
int x = 0;
cout << "n == " << n ++ << " x == " << x ++ << endl;
}
}
输出为:
n == 0 x == 0
n == 1 x == 0
n == 2 x == 0
参数传递
- 值传递:函数中调用的是变量的一个副本,函数中变量的改变不会改变函数外变量的值
- 址传递:传递的是指针,函数外变量的值也会改变
- 引用类型:传递的是引用,函数外变量的值也会改变
- 修改引用参数的函数会使程序更加难读,因此最好避免写这种函数
- 但是,通过引用传递大对象,比值传递的效率更高一些。因为值传递会新建一个该参数的副本。
- 在这种情况下,可以将该参数声明为const,以说明使用引用类型的参数仅仅是为了效率的原因,而不是想让调用函数能够修改参数的额值。
- 数组参数
- 传递数组参数时无法知道数组的长度,一种方法是在函数的参数里增加一个说明数组的长度,另一种方式是使用vector
返回值
- 每当一个函数被调用,就会建立起他的参数和局部变量的一套新副本;在函数返回后,这些存储空间又会被另作他用。所以,绝不能返回指向局部变量的指针或者局部变量的引用。
网友评论