本人小白零基础入学,对于作用域问题有点儿不理解,今儿做作业遇到一道题做错了,请哪位大神帮我解答一下。题目如下:
请写出下面代码的执行结果:
#include ,<stdio.h>
{
int a = 20;
int score = a + 100;
printf("%d\n",score);
{
int score = 50;
{
score = 10;
printf("%d\n",score);
}
a = 10;
}
{
score = a + 250;
int score +30;
printf("%d",score);
}
printf("%d\n",score);
return 0;
}
我自己算出来的输出结果是 120 10 30 120 老师给出的答案是 120 10 30 260 为何最有一个输出是260,中间的小块儿作用域不是结束就释放了吗,难道最后一个输出结果不和第一个输出一样吗?求解 |
|