我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 值参 >

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

归档日期:09-13       文本归类:值参      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  因为程序在运行时才会给程序中定义的变量开辟内存空间和进行初始化,函数是在被调用的时候才会给形参和函数体内定义的变量开辟内存空间,带有默认形参的函数在给形参开辟空间后就回先把默认值赋给形参,若没有实参传递,形参值就是默认值,默认值必须是系统能确切找得到的值才能进行对带有默认值形参进行初始化,而局部变量不是在正在被调用的函数内定义的(形参是函数一开始就定义的)或者在其他函数内定义并被使用完就被释放掉了,因此系统就会找不到一个确切的值赋给形参,所以函数参数默认值不允许为局部变量。

  局部变量是你函数调用之后,才会被构造出来,而函数参数的值的存在,是在调用函数的时候就必须存在。一个是函数调用之后才存在,一个是函数调用之时就存在,你说,参数默认参数怎么能为局部变量呢!

  展开全部有些乱, 既然是局部变量就是在函数内部的, 只有程序运行到这个变量定义处才会对其初始化。

本文链接:http://capstonebake.com/zhican/508.html

上一篇:jsp如何通过url传值。

下一篇:没有了