标题:【求助】基础问题搞不懂~~
取消只看楼主
fishburger
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2011-2-9
结帖率:100%
已结贴  问题点数:10 回复次数:3 
【求助】基础问题搞不懂~~
以下程序,请问为什么结果是
****a=10
******a=5
a=10
****a=25

而不是
****a=10
******a=5
a=25
****a=25

另外,如果我把第六行的int删掉,为什么结果会是
****a=10
******a=10
a=100
****a=100

有没有int有什么区别?

#include<stdio.h>
int a=5;
main()
{
    void funn();
    int a=10;
    printf("****a=%d\n",a);
    {
        extern int a;
        printf("******a=%d\n",a);
        a*=a;
    }
    printf("a=%d\n",a);
    funn();
}
void funn()
{
    printf("****a=%d\n",a);
}



谢谢各位大侠!!!

[ 本帖最后由 fishburger 于 2011-2-10 00:16 编辑 ]
搜索更多相关主题的帖子: void include 
2011-02-09 23:19
fishburger
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2011-2-9
得分:0 
回复 3楼 qq312154421
谢谢!您的意思就是说a*=a;使全局变量a重新赋值成为25?然后复合语句中的结果不会影响第13行printf的结果?为什么第14行funn()会是全局变量呢,他前面没有加extern啊?期待您的再次解答!!!谢谢~
2011-02-10 13:33
fishburger
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2011-2-9
得分:0 
回复 7楼 cacker
谢谢~!现在有点明白了!还有一个问题,如果把int a=10,改为a=10,会出现10,10,100,100的结果呢?extern丧失作用了?还是说把全部变量由5改成10了?或者是其他的。。。谢谢!!
2011-02-10 14:13
fishburger
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2011-2-9
得分:0 
谢谢大家~!
2011-02-12 17:41



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




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

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