C++入门4——函数

函数声明

  • 函数定义:函数如何实现
  • 静态变量:静态变量只在执行线程第一次到达他的时候初始化。例如:
#include 

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

返回值

  • 每当一个函数被调用,就会建立起他的参数和局部变量的一套新副本;在函数返回后,这些存储空间又会被另作他用。所以,绝不能返回指向局部变量的指针或者局部变量的引用。

你可能感兴趣的:(C++入门4——函数)