如果一个函数中有多个默认参数,则默认参数必须全部处在形参表的?

 我来答
85ydgux23
推荐于2018-04-14 · TA获得超过232个赞
知道答主
回答量:540
采纳率:100%
帮助的人:268万
展开全部
答案:后面
解释:编译器是按顺序来传参数的。详解如下:
1. 例如void fun(int a, int b, int c=0);那么编译器就按照a,b,c的顺序给函数fun传参数,fun函数里c是默认参数,就是说,调用fun函数时,可以不必传3个参数,可以写成fun(1,2),这样的话,a=1,b=2,c=0.
2. 如果默认参数不是在后面部分,而是在前面的话,编译器就会报错,譬如:void f(int a, int b=0, int c);这样的话,默认参数是没有任何意义的,因为你写f(1,2)的时候,编译器是把1赋值给a,2赋值给b,结果c没有赋值,故出错。
总结:为了避免出现上述的第2种情况,编译器只要检查到默认参数后面,还有非默认参数,就会报错。所以说,一个函数如果有默认参数,那么默认参数一定都放在参数列表中的后面部分,否则,编译器报错。
wanfustudio
2011-06-25 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3709万
展开全部
最右侧,编译器才能判断出来是不是需要帮你加上默认参数
你少填参数了,它再帮你加上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式