| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 643 人关注过本帖
标题:【求助】基础问题搞不懂~~
取消只看楼主 加入收藏
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
快速回复:【求助】基础问题搞不懂~~
数据加载中...
 
   



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

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