标题:关于局部变量的问题
只看楼主
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
结帖率:95.45%
 问题点数:0 回复次数:10 
关于局部变量的问题
#include <stdio.h>
void main()
{
    int a=1,b=2,c=3;
    printf("%3d%3d%3d\n",a,b,c);
    {
        int b=4;
        float c=5.0;
        printf("%3d%3d%5.1f\n",a,b,c);
        a=b;
        {
            int c;
            c=b;
            printf("%3d%3d%3d\n",a,b,c);
        }
        printf("%3d%3d%5.1f\n",a,b,c);
    }
    printf("%3d%3d%3d\n",a,b,c);  //这行里面的a为什么等于4?
}
解释一下注释那行的a,b,c分别为4,2,3
搜索更多相关主题的帖子: include 
2016-11-03 21:43
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
    int a=1,b=2,c=3;
    printf("%3d%3d%3d\n",a,b,c);
    {
        int b=4;
        float c=5.0;
        printf("%3d%3d%5.1f\n",a,b,c);
        a=b;
        {
            int c;
            c=b;
            printf("%3d%3d%3d\n",a,b,c);
        }
        printf("%3d%3d%5.1f\n",a,b,c);
    }
    printf("%3d%3d%3d\n",a,b,c);  //这行里面的a为什么等于4?

那你认为应该是多少呢?
2016-11-04 09:52
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
得分:0 
代码块内如果有定义与前面定义的变量同名,那么该代码块内是会屏蔽掉前面定义的那个变量。
2016-11-04 13:54
陈CDG
Rank: 2
等 级:论坛游民
帖 子:17
专家分:57
注 册:2016-4-11
得分:0 
这与局部变量的优先级有关
2016-11-04 14:11
冥河
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-10-19
得分:0 
#include "stdio.h"
void main()
{
    int a=1,b=2,c=3;
    printf("%3d%3d%3d\n",a,b,c);
    {
        int b=4;
        float c=5.0;
        printf("%3d%3d%5.1f\n",a,b,c);
        a=b;//a=4,b=a
        {
            int c;
            c=b;//c=4,b=a,c原本为folat,改变成Int,所以c=4而不=0
            printf("%3d%3d%3d\n",a,b,c);//a=4,b=4,c=4
        }
        printf("%3d%3d%5.1f\n",a,b,c);//%5.1f把c定义成float型,所以c=5.0
    }
    printf("%3d%3d%3d\n",a,b,c);  //因为赋值了a=b,所以a=4,因为这行在大挎号外,且定义的是%d的int型,所以c=3
}
2016-11-04 14:19
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
得分:0 
回复 2楼 rjsp
这是赋值操作,我懂了

Code is my life.
2016-11-05 11:02
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
得分:0 
回复 3楼 StadyC
外层变量内层不可见

Code is my life.
2016-11-05 11:03
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
得分:0 
回复 5楼 冥河
对,谢谢你!

Code is my life.
2016-11-05 11:03
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
得分:0 
回复 7楼 bjut_Allen
可以这么说,仅限于同名的变量

[此贴子已经被作者于2016-11-10 11:11编辑过]

2016-11-06 15:44
khwei
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:11
专家分:32
注 册:2016-10-24
得分:0 
已经赋值a=b
2016-11-06 17:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470669-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.199716 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved