有以下程序
#include <stdio.h> int a = 1, b = 2; void funl(int a, int b) { printf("%d%d", a, b); } void fun2() { a = 3; b = 4; } int main() { funl(5, 6); fun2(); printf("%d%d\n", a, b); }
程序运行后的输出结果是?
5612
3456
1256
5634
func1(5,6);
void func2(){ a=3; b=4; }
调用fun2函数,改变了全局变量a b的值,迷惑点:fun2函数调用执行完毕以后,释放的是函数中局部变量的值,但是,这里的a b是全局变量
变量有生存期,作用域,可见域,如果局部变量和全局变量重名,在局部变量的作用域范围类,全局变量是不可见的,也就是说全局变量被屏蔽了
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题