主函数中定义的变量在子函数中是否有效?
1个回答
展开全部
无效。
首先明确,子函数和调用这个函数的函数(相对意义上的主函数)是两个不同的函数。
标准C/C++不支持局部函数。函数内定义的对象的名称具有函数作用域,有效范围从定义处开始到函数体结束,和其它函数内的名称无关。即使在两个函数中各自使用相同的标识符进行定义,也是两个不同的名称(C语言中可以保证是不同的对象;C++引用可能指向相同的实体),具有各自的函数作用域。如果一个在不同函数内表示相同实体的名称能被引用,那么这个名称只能表示一个全局对象(C++中也可以是两个函数所在类/命名空间中的公共对象)。
如果是循环内/语句块中定义的名称,ISO
C90(不支持循环开头定义)从定义处到函数体结束,ISO
C99/ISO
C++则是从定义处开始到循环/语句块结束。
====
[原创回答团]
首先明确,子函数和调用这个函数的函数(相对意义上的主函数)是两个不同的函数。
标准C/C++不支持局部函数。函数内定义的对象的名称具有函数作用域,有效范围从定义处开始到函数体结束,和其它函数内的名称无关。即使在两个函数中各自使用相同的标识符进行定义,也是两个不同的名称(C语言中可以保证是不同的对象;C++引用可能指向相同的实体),具有各自的函数作用域。如果一个在不同函数内表示相同实体的名称能被引用,那么这个名称只能表示一个全局对象(C++中也可以是两个函数所在类/命名空间中的公共对象)。
如果是循环内/语句块中定义的名称,ISO
C90(不支持循环开头定义)从定义处到函数体结束,ISO
C99/ISO
C++则是从定义处开始到循环/语句块结束。
====
[原创回答团]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |