一道C的考题
来源:百度知道 编辑:UC知道 时间:2024/05/17 08:24:56
复习C时碰到一道题目,求输出结果:
#define a 10
void foo();
void main()
{
printf("%d",a);
foo();
printf("%d",a);
}
void foo()
{
# undef a
# define a 50
}
答案是1010 ,自己运行了一下也是,但我总觉得应该是1050 啊
#define a 10
void foo();
void main()
{
printf("%d",a);
foo();
printf("%d",a);
}
void foo()
{
# undef a
# define a 50
}
答案是1010 ,自己运行了一下也是,但我总觉得应该是1050 啊
变量作用域的问题
#define a 10定义的是全局的变量。
全局有效。
void foo()
{
# undef a
# define a 50
}
这个函数里的 a,只在函数体内有效,函数结束也就不存在了,故第二次输出的还是10。