函数外部定义了全局变量,函数内部定义了同名同类型的局部变量,函数内引用这个变量时是引用的哪个啊?

函数返回这个变量值,是返回局部变量值还是全局变量值啊?

变量的引用过程,类似于栈。
就是说编译器从变量引用处以最近逻辑距离开始搜索,找到后则开始使用停止则停止搜索;如果查找失败则编译出错。

举个例子来说,就是优先引用函数内部的(逻辑距离最近),其次引用同一个源文件中全局的,如果函数内部、同一个源文件中没有,再引用包含文件中的。

返回值也是对变量的引用,当然是局部变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-29
函数内当然是引用局部变量啦,返回的也是局部变量

参考资料:高级语言程序设计

第2个回答  2010-10-17
如果不特别声明是全局变量,当然就是用的局部变量啊,不过最好别这么用啊,容易混淆,程序的可读性很重要的
第3个回答  2010-10-17
名字相同,而且类型相同.则优先访问局部. 因为程序规则就是先从局部变量查找,找不到再找全局..如是类的话,还查找成员. 一般最好别重复,出错难找.编程习惯要良好
第4个回答  2010-10-17
函数内部的 函数内部的会蔽屏函数外部的 语句也是如此
比如说 函数内部定义一个变量 在语句作用域中定义一个相同的变量
语句中使用的变量 将是语句作用域中的定义的 详细资料可以看下C++primer 里面说得很清楚
相似回答