C++入门之缺省参数

一.缺省

缺省就是默认的意思,对应计算机英文中的”default”缺省参数就是在函数定义时指定的默认值,当传参时未指定参数值时,就会使用默认值

二.分类

1.全缺省参数

上面这种传参方式都是正确的,但下面的就不正确了

因为在传参时,对于缺省参数进行赋值时,必须从左往右依次给出值,而不能有空出的。

2.半缺省参数

这几种方式哪些是正确的呢?

只有1和2是正确的。

为什么3,4,5错误呢?举个例子,如果要调用3:func3(1,3),那这个3是b的值还是c的值呢?无法确定,4和5也同理

所以半缺省参数有如下注意事项:半缺省参数必须从右向左给出缺省值

再看下面的代码:

这是因为c++规定,缺省参数不能同时在函数声明和定义中出现,为什么会这样规定呢?这就是防止出现定义和声明中对同一个变量给定的缺省值不同,当缺省值不同时,就会出现矛盾,编译器就不知道使用哪一个缺省值。所以为了避免这样的错误,就直接规定同一个参数不能再定义和函数中都缺省一遍(也就是缺省两遍)。但是,比如有abc三个变量,可以让c在声明中缺省,让b在定义中缺省,只要保整合起来是从右向左缺省的即可,如下:

但不推荐这样写,最好的做法是,只在声明中缺省!!!

总结:

1.半缺省参数必须从右往左给出,不能间隔着给

2.缺省参数不能在函数的定义和声明中同时出现,一般是建议都写在声明中

3.缺省值必须是常量或全局变量(也就是int a=10/int a=全局变量0)

4.C语言不支持该语法

三.缺省参数的实际应用——栈

栈在使用前要开辟空间,但有时候我们知道需要多大的空间,但有时又不知道。所以义函数时,我们就可以使用缺省参数,当已知栈的空间时就给出确定的值,未知时就使用默认值。如下:

stack.h中

stack.cpp中

test.cpp中调用如下:

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值