主函数中定义的变量在子函数中是否有效?

 我来答
娱乐小八卦啊a
高粉答主

2019-10-17 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117821

向TA提问 私信TA
展开全部

主函数中定义的变量在子函数中有效。

变量按存储区域分:全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。  

全局变量:在整个工程文件内都有效;“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值, 就能影响到其他函数中全局变量的值。


扩展资料

全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。静态局部变量与全局变量最明显的区别就在于:全局变量在其定义后所有函数都能用,但是静态局部变量只能在一个函数里面用。

形参变量 :  只在被调用期间才分配内存单元,调用结束立即释放。不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响。

参考资料来源:

百度百科——全局变量

百度百科——局部变量

FrankHB1989
推荐于2017-12-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:4569
采纳率:100%
帮助的人:3043万
展开全部
无效。
首先明确,子函数和调用这个函数的函数(相对意义上的主函数)是两个不同的函数。
标准C/C++不支持局部函数。函数内定义的对象的名称具有函数作用域,有效范围从定义处开始到函数体结束,和其它函数内的名称无关。即使在两个函数中各自使用相同的标识符进行定义,也是两个不同的名称(C语言中可以保证是不同的对象;C++引用可能指向相同的实体),具有各自的函数作用域。如果一个在不同函数内表示相同实体的名称能被引用,那么这个名称只能表示一个全局对象(C++中也可以是两个函数所在类/命名空间中的公共对象)。
如果是循环内/语句块中定义的名称,ISO C90(不支持循环开头定义)从定义处到函数体结束,ISO C99/ISO C++则是从定义处开始到循环/语句块结束。
====
[原创回答团]

参考资料: 原创

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐雨jsc
2010-09-08 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:80.5万
展开全部
如果主函数中有一个i=5,而子函数中重新定义一个i=2的话,在子函数中i取2。但如果子函数中没定义i的话。i在子函数中无效,除非定义全局变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘小祯
2010-09-08 · TA获得超过219个赞
知道答主
回答量:297
采纳率:0%
帮助的人:171万
展开全部
这个怎么可能会有效呢。
这分明就是两个不同的函数嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琼头浪子
2010-09-08 · TA获得超过601个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:214万
展开全部
无效
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式