默认参数、占位参数

我们先看一个普通的函数

int sum( int a, int b)
{
    return a + b;
}  

这是一个普通的函数,当我要调用他时传入2个参数  a 和 b 返回两个数的和。

 

默认参数

C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替

 

那么看一下下面这个例子

int sum( int a, int b = 7)
{
    return a + b;
}

int main(int argc, char const *argv[])
{
    int a(5);
    int b(7);
    std::cout<<sum(a)<<std::endl;
      
    return 0;
}  

在调用函数的时候,我只给传入了一个参数,另外一个没有传,但是程序仍然返回给了我一个值

当然了 我们也可以像刚才那样用 sum(a,b) 这样调用,同样的也会返回一个 12

因为我在定义函数时,给第二个参数一个默认的参数 7 

当我没有对这个参数赋值时,编译器会自动给他赋为7

 

 

 

占位参数

占位参数只有参数类型声明,而没有参数名声明一般情况下,在函数体内部无法使用占位参数

 

举个栗子

 int sum( int a, int b,int)
{
    return a + b ;
}

int main(int argc, char const *argv[])
{
    int a(5);
    int b(7),c(6);
    std::cout<<sum(a,b,1)<<std::endl;
    return 0;
}

函数定义的时候多加了一个 int  但是我没有给 int 一个明确的形参,在调用的时候随便给了一个值

 

占位参数的意义:为了以后程序扩展留下线索,同时兼容c的不规范写法

 

也可以给占位参数一个默认参数

 int sum( int a, int b,int = 0)
{
    return a + b ;
}

int main(int argc, char const *argv[])
{
    int a(5);
    int b(7),c(6);
    std::cout<<sum(a,b)<<std::endl;
    return 0;
}

 

原文链接: https://www.cnblogs.com/qifeng1024/p/12624659.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    默认参数、占位参数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/378922

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月3日 下午2:04
下一篇 2023年3月3日 下午2:27

相关推荐