因为 int x , y; 声明为全局变量,同时在 void num() 函数里 extern int x, y; 声明为外部变量,所以x y 的作用域就扩展到了 num() 函数里,所以x y 的值就是最后调用 num() 函数得到的值。
【以下回答由 GPT 生成】
我对全局变量和局部变量的概念有一定的了解。局部变量是在函数内部定义的变量,在函数执行完毕后会被销毁,只能在函数内部访问。全局变量是在函数外部定义的变量,它在整个程序中都可以被访问和使用。
当全局变量和局部变量同名时,局部变量会覆盖全局变量的值。在函数内部,如果局部变量与全局变量同名,则函数内部使用的是局部变量的值;而在函数外部,使用的是全局变量的值。
下面是两个程序的例子,用于说明全局变量和局部变量同名的情况。
x = 10 # 全局变量
def my_function():
x = 5 # 局部变量
print("局部变量 x 的值:", x)
my_function()
print("全局变量 x 的值:", x)
程序1的输出结果为:
局部变量 x 的值: 5
全局变量 x 的值: 10
在my_function
函数内部,x
被声明为局部变量,其值为5。当函数执行完毕后,局部变量x
被销毁。因此在函数外部打印全局变量x
时,输出的是全局变量x
的值10。
x = 10 # 全局变量
def my_function():
global x # 声明要使用的是全局变量 x
x = 5 # 修改全局变量 x 的值为 5
print("全局变量 x 的值:", x)
my_function()
print("全局变量 x 的值:", x)
程序2的输出结果为:
全局变量 x 的值: 5
全局变量 x 的值: 5
在my_function
函数内部,使用了global
关键字来声明要使用的是全局变量x
。因此在函数内部修改全局变量x
的值为5时,全局变量x
的值也被修改了。在函数外部打印全局变量x
时,输出的是修改后的值5。
希望以上解释和示例能够帮助您理解全局变量和局部变量的概念及同名时的情况。如果还有其他问题,请随时提问。
【相关推荐】