A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sydie 中级黑马   /  2015-3-15 08:21  /  1437 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main()
{
    int a = 20;
    int score = a + 100;
    printf("%d\n",score); // 120
   
    {
        int score = 50;
       {
            score = 10;
            printf("%d\n",score);//10

         }
        a = 10;
   
    }
   
    {
        score = a + 250;
        int score = 30;
        printf("%d",score);
    }
    //无效
    printf("%d\n",score);
    return 0;
}


第一个printf输出,值为 score = a + 100 = 120
第二个printf输出,score = 10
第三个printf输出为哪个??值是怎么来的??

3 个回复

倒序浏览
#在这里快速回 {         score = a + 250;         int score = 30;         printf("%d",score);     }这个代码块中的score是全局的,然后score=10+250;然后你又定义了一个int score=30,这个是局部的,从声明位置开始,所以输出结果是30.
回复 使用道具 举报
每个输出语句都是输出对应的{}里面的东西
回复 使用道具 举报
一步一个脚印 发表于 2015-3-28 18:51
#在这里快速回 {         score = a + 250;         int score = 30;         printf("%d",score);     }这 ...

此处的score不是全局变量。。。。是这段的代码的局部变量!分析的是没有问题的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马