README.md 1.8 KB

函数

  • 函数可以让代码模块化,便于阅读维护
  • 代码模块化之后,能够实现分工合作
  • 减少重复代码,降低工作量
// 返回类型 函数名称(参数1, 参数2, 参数3...) {
//     函数功能区
//     renturn 返回值;
// }

int add(int a, int b) {
    int result = a + b;
    return result;
}

一般函数定义如上

函数参数:指针参数

int add(int a, int b) {
    a *= 100;
    b *= 10;
    return a + b;
}

int a = 2, b = 1;
int c = add(a, b);

上面函数运行结束之后,全局定义的 a、b 的值并不会被修改为 200 和 10,因为函数参数 a、b 是函数作用域的临时变量,相当于全局作用域的 a 给函数作用域的 a 赋值,只是变量名相同

int add(int* a, int* b) {
    a *= 100;
    b *= 10;
    return a + b;
}

int x = 2, y = 1;
int z = add(&x, &y);

如果 add 函数参数接受的是变量地址,那么通过地址可以直接修改 x、y 的值

int add(int &a, int &b) {
    a *= 100;
    b *= 10;
    return a + b;
}

int x = 2, y = 1;
int z = add(x, y);

如果 add 函数参数接受的是引用,那么可以直接通过引用的方式来修改原来的值

默认参数

默认参数智能放在最后

int add(int a = 100, int b = 100);  // 正确
int add(int a = 100, int b);    // 错误
int add(int a, int b, int c = 100); // 正确
int add(int a, int b = 100, int c); // 错误
int add(int a, int& b = 100);   // 错误 int& 无法使用默认参数

不定量参数

如果遇到想要求多个数的和,但是不确定数的个数,也就不能确定函数参数个数,这种情况需要使用不定量参数

再比如一些控制台命令,根据你参数的个数会启动不同的功能