标题:为什么数组b的值在调用函数后全变0了
只看楼主
zhengchen080
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2013-7-29
得分:0 
回复 10楼 wp231957
我的意思是调用函数后b数组的值随之改变,因为b定义的是全局变量,那为什么在我调用函数之后b数组的值还是0呢
2013-08-13 19:04
whxnsw
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2013-8-10
得分:3 
调用函数中的b[i]对main函数中的b[i]没有影响,b[i]没有进行调用,一般int b[12]应在main函数中定义的.
#include "stdio.h"
#include "math.h"
int b[12];
main()
{

    int n,y,r,i;
    scanf("%d,%d,%d",&n,&y,&r);
    for(i=0;i<11;i++)
        printf("%d ",b[i]);

}
结果输出一样为0,若在main函数中定义int b[12],则产生随机数组,在main 函数外定义,初始化为0,不知为何,请高手详解
2013-08-13 21:39
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
得分:0 
回复 12楼 whxnsw
晕了!你上面的没有定义数值,你说b[12]会不会默认为0呢?另外,你的函数,你在main()函数中没有去调用你写的函数,它怎么会改变数值呢?

   好好学习!
2013-08-16 09:47
zhujiangtaoc
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2013-8-18
得分:0 
你在rn函数中定义的b[]作用域只在那个函数中,又因为你声明了全局变量b[],所以你打印全是0,不信你可以把全局的b[]={1,2,3,4,5,6,7,8,9,0,11,3};那么for(i=0;i<11;i++)
        printf("%d ",b[i]);就会打印出1,2,3,4,5,6,7,8,9,0,11,3;
2013-08-18 21:12



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




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

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