关于C++的默认参数

考虑以下代码:

#include <iostream>

using namespace std;

int N = 0;

void print(int a=N)
{
    cout<<a;
}

int main()
{
    N=2;
    print();
    return 0;
}

输出结果是 2 .

print函数使用了默认参数,而默认传入的参数又是一个变量的值,那么在改变了这个变量的值之后,在函数运行时传入的默认参数也会随之改变。

换言之,默认参数的值如果传入为变量的时候,并不是在编译期直接确定,而是要在运行期时候根据具体变量的值进行确定。


版权声明:本文为qq_35356972原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。