/*注意:C语言不支持默认参数*/
#include <iostream>
#include <Windows.h>
/*
---使用默认参数注意事项: ---
1. 默认参数必须放在参数列表的最后(默认参数后面不能再有普通参数)
2. 可以有多个形参有默认参数,但是需要放在最后(符合1)
3. 如果实参有默认参数,我们还可以给它传递参数,如果传递则使用我们传递的参数
*/
/*为val设置了默认值,当不以实参的形式传入时,以默认值输入*/
void scoreAdd(int score[], int n, int val = 5)
{
}
int main(void)
{
int score[] = { 60,70,80 };
scoreAdd(score, sizeof(score)); /*第三个参数使用默认值*/
}
?---使用默认参数注意事项: ?---
? ? 1. 默认参数必须放在参数列表的最后(默认参数后面不能再有普通参数)?
? ? 2. 可以有多个形参有默认参数,但是需要放在最后(符合1)
? ? 3. 如果实参有默认参数,我们还可以给它传递参数,如果传递则使用我们传递的参数
? ?1.的原因是,防止调用参数时有歧义,?
? ? ? ?例如:? ?void scoreAdd(int score[], int n=5, int val){}
? ? ? ? ? ? ? ? ? 调用函数时: scoreAdd(score,6); // 你不讲默认参数写在最后,这里就会出现歧义,第二? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 个参数是给n的还是给val的?(编译器就无法识别了) -- 所以规定有默认参? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?数的实参必须在最后。