void foo (int i , int k = 7) {
cout << k;
}
int main(){
foo(1, 2);
}
k将输出2。
我的问题是, foo 按什么顺序初始化参数并获取参数? foo 得到 2 的过程是什么?谢谢
void foo (int i , int k = 7);
这个原型意味着,如果您仅使用第一个参数调用 foo,则第二个参数将隐式设置为 7。
foo(1, 2); // i=1, k=2
foo(5); // <==> foo(5, 7) i=1, k=7
该机制由编译器在编译时解决。每当调用 foo 时缺少参数 k 时,编译器会自动将其值插入为 7(即foo(5)
)。如果不丢失,则采用实际参数(即foo(1, 2)
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)