代码和结果都是没问题的,你第三个printf函数里面没有加换行,所以结果看着略怪,第三个score的值是30你肯定能理解对吧,因为第三个printf函数上面那句你定义了score的值是30,所以重点是最后一个为什么是260,为了便于理解,我把你的程序中全局变量score用A代替,程序就变成了这个样子
int main()
{
int a = 20;
int A = a + 100;
printf("%d\n", A); //120
{
int score = 50;
{
score = 10;
printf("%d\n", score);//10
}
a = 10;
}
{
A = a + 250;
int score = 30;
printf("%d", score);//30260
}
printf("%d\n", A);
return 0;
}
所以结果显而易见,A= 10 + 250,即260 |