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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 这是829 中级黑马   /  2015-5-18 22:08  /  2640 人查看  /  30 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本人小白零基础入学,对于作用域问题有点儿不理解,今儿做作业遇到一道题做错了,请哪位大神帮我解答一下。题目如下:
请写出下面代码的执行结果:
#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,中间的小块儿作用域不是结束就释放了吗,难道最后一个输出结果不和第一个输出一样吗?求解

30 个回复

正序浏览
好好学习天天向上
回复 使用道具 举报

a = 10 为什么是主函数结束后才回收啊
回复 使用道具 举报
看作用域   双击大括号    那些选中 就是作用域啊
回复 使用道具 举报
学习学习!
回复 使用道具 举报

恩,新手比较容易出错。
回复 使用道具 举报
kansiliyundi 发表于 2015-5-19 21:20
最后一个代码块有两个score 一个对应的是上面的全局变量  还有一个是int score 这个是代码块里定义的局部变 ...

恩,知道了
回复 使用道具 举报
顶顶顶
回复 使用道具 举报
jingkai 发表于 2015-5-18 23:24
来吸取经验来了

共同学习
回复 使用道具 举报
是的,你哪位?
回复 使用道具 举报
日积月累  学习
回复 使用道具 举报
梦初醉 发表于 2015-5-19 23:28
画内存图很好解决的

你不是张玉么
回复 使用道具 举报

看看吧,一起学习,:)
回复 使用道具 举报

看看吧,一起共同学习!
回复 使用道具 举报

一起学习。
回复 使用道具 举报
画内存图很好解决的
回复 使用道具 举报 1 0
jingkai 发表于 2015-5-18 23:24
来吸取经验来了

嘿嘿,欢迎共同交流
回复 使用道具 举报
649678291 发表于 2015-5-18 23:16
作用域以及内存储存的知识点

恩,作用域的问题现在懂了。
回复 使用道具 举报
着实没什么实际意义
回复 使用道具 举报

谢谢你的解答太清楚太详细了!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马