c++默认参数

发布时间:2023年12月20日
/*注意: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的?(编译器就无法识别了) -- 所以规定有默认参? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?数的实参必须在最后。

文章来源:https://blog.csdn.net/weixin_68026222/article/details/135103898
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。