在C++中,函数参数默认值为什么不允许为局部变量呢??

 我来答
真理拾荒者
推荐于2018-03-04
知道答主
回答量:1
采纳率:100%
帮助的人:1398
展开全部
因为程序在运行时才会给程序中定义的变量开辟内存空间和进行初始化,函数是在被调用的时候才会给形参和函数体内定义的变量开辟内存空间,带有默认形参的函数在给形参开辟空间后就回先把默认值赋给形参,若没有实参传递,形参值就是默认值,默认值必须是系统能确切找得到的值才能进行对带有默认值形参进行初始化,而局部变量不是在正在被调用的函数内定义的(形参是函数一开始就定义的)或者在其他函数内定义并被使用完就被释放掉了,因此系统就会找不到一个确切的值赋给形参,所以函数参数默认值不允许为局部变量。
小巷轩
2012-12-16
知道答主
回答量:9
采纳率:0%
帮助的人:5.4万
展开全部
局部变量是你函数调用之后,才会被构造出来,而函数参数的值的存在,是在调用函数的时候就必须存在。一个是函数调用之后才存在,一个是函数调用之时就存在,你说,参数默认参数怎么能为局部变量呢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
22493266
2012-12-11 · TA获得超过109个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:59.9万
展开全部
有些乱, 既然是局部变量就是在函数内部的, 只有程序运行到这个变量定义处才会对其初始化。
而你函数的默认参数。。。
根本没什么关系的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ydxwfnwcw
2012-12-11 · TA获得超过150个赞
知道答主
回答量:55
采纳率:0%
帮助的人:31.3万
展开全部
所谓默认值就是一个默认的常量值,常量值当然不能是变量了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26ad406
2012-12-11 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1064万
展开全部
什么意思 都默认了肯定要是一个定值 局部变量肯定不是定值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式