黑马程序员技术交流社区
标题: 关于变量在代码块中的作用域 [打印本页]
作者: cysummery 时间: 2015-4-5 12:27
标题: 关于变量在代码块中的作用域
/*
变量的作用域:
在代码块中,变量score如果没有int重定义,那么赋值给了离他最近的int定义的score;
printf打印的是同一层级定义的score的最后一次赋值结果.
*/
#include <stdio.h>
int main(int argc, const char * argv[]) {
int score = 100;
printf("score=%d\n",score);
{
score = 200;
printf("score=%d\n",score);
int score = 300;
score = 400;
printf("score=%d\n",score);
{
score = 500;
printf("score=%d\n",score);
}
//在同一层级离他最近的int定义的score被赋值两次,最后一次是500,所以打印了500;
printf("score=%d\n",score);
}
printf("score=%d\n",score);
return 0;
}
代码输出结果:score=100
score=200
score=400
score=500
score=500
score=200
//粘贴过来的代码没有了缩进...
作者: 梦想中前行 时间: 2015-4-5 21:25
我想问,最后一个打印结果是200?
作者: cysummery 时间: 2015-4-5 21:34
对呀,你可以试试,我觉得,最后一个printf和第一个int初始化的score在同一个层级,而那个score后面最后一次赋值就是200了,所以打印200,这结果是我直接从控制台复制过来的~
开始我也很惊讶来着...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |