关于C程序中数组元素初始化的问题
我现在在练习C语言的上机题,经常看见要使用一个数组的时候先要把所有元素初始化为0,这是为什么呢?数组元素如果不赋初值的话,默认值不是都为0吗?char类型的数组也是0吗?...
我现在在练习C语言的上机题,经常看见要使用一个数组的时候
先要把所有元素初始化为0,这是为什么呢?数组元素如果不赋初值的话,默认值不是都为0吗? char类型的数组也是0吗?
我经常看到menset()函数,要不就是for(i=0;i<26;i++)ch[i]=0;这里ch是一个(将)要存放26个英文字母出现次数的数组,ch是对以后存储26个英文字母出现次数的,比如出现一次'a'||'A'那么a[0]的值就该为1,如果不把数组元素初始化为0,会有错误发生吗? 我觉的初始化为0有点多余吧? 展开
先要把所有元素初始化为0,这是为什么呢?数组元素如果不赋初值的话,默认值不是都为0吗? char类型的数组也是0吗?
我经常看到menset()函数,要不就是for(i=0;i<26;i++)ch[i]=0;这里ch是一个(将)要存放26个英文字母出现次数的数组,ch是对以后存储26个英文字母出现次数的,比如出现一次'a'||'A'那么a[0]的值就该为1,如果不把数组元素初始化为0,会有错误发生吗? 我觉的初始化为0有点多余吧? 展开
展开全部
static变量系统自动初始化为零,一般变量是不会初始化的,那么他们就是随机值。
这样,在你上面所说的统计过程中,各个统计值都从随机数开始,正确吗?
所以初始化为零是需要的。当然,也不是必需的。
这样,在你上面所说的统计过程中,各个统计值都从随机数开始,正确吗?
所以初始化为零是需要的。当然,也不是必需的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好是先初始化一下,不然数组里的元素是随机的结果,假如你的程序是用来统计个数的,如果你后面都还没赋值就开始使用这条语句,a[i]++;后果就不好想像了
但不一定初始化为0,看什么程序,如果要把一个数组全部初始化0的话,直接在定义的时候初始化是最方便的,不要像上面一样还要调用函数和循环,比如下面就把一个数组元素全部初始化为0了
int a[100]={0};//在定义的同时初始化
但不一定初始化为0,看什么程序,如果要把一个数组全部初始化0的话,直接在定义的时候初始化是最方便的,不要像上面一样还要调用函数和循环,比如下面就把一个数组元素全部初始化为0了
int a[100]={0};//在定义的同时初始化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-04-15
展开全部
不把所有元素初始化,得到的结果不确定!!!(比如定义{int a;printf("%d",a);}未初始化的话,可能原先a在内存中的地址存储的是4,结果输出的结果可能为4)
char类型的数组不初始化的话,,默认值是都为"\0"字符!!
char类型的数组不初始化的话,,默认值是都为"\0"字符!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面两个是初始化运行的,其等号并不是赋值操作。
后面char
s[10];
s[10]="book"
和
char
s[10];
s[]="book"缉矗光匪叱睹癸色含姬;
这里面=是赋值操作。
字串不能直接赋值,要用strcpy。
和静态储存无关。
后面char
s[10];
s[10]="book"
和
char
s[10];
s[]="book"缉矗光匪叱睹癸色含姬;
这里面=是赋值操作。
字串不能直接赋值,要用strcpy。
和静态储存无关。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询