这个是作用域的问题
#include <stdio.h>
int main()
{
int a = 20;//a=20
int score = a + 100;//score=120
printf("%d\n", score);//打印120
{
int score = 50;//score=50
{
score = 10;//score=10
printf("%d\n", score);打印10
}
a = 10;
}//这可代码块结束后a=10,socre=10
{
score = a + 250;//score=260,这个score是之前定义的,代码块结束后,修改的值依然保留
int score = 30;//这个score的是新定义的,作用域只在这个代码块之内
printf("%d", score);//打印30
}
printf("%d\n", score);//260
return 0;
}
代码块内的标识符若没有新定义,会自动引用外部的定义,并且在代码块结束后,将结果保留
希望可以帮到你 |