关于c语言中的赋值问题。

char a[5] a[0]='c';a[1]='h';a[2]='i';a[3]='n';a[4]='a';是合法的。那么a[5]='c'是不是合法的?
可能是我说的不清楚,我想说的是:只将'c'赋整个a[5]。
说得更加清楚点吧,(a[5]='c')是不是合法的,我的意思并不是把a[5]分开之后再分别赋值,我知道a[5]中只有a[0],a[1],a[2],a[3],a[4]并不存在a[5],我只是将单一的'c'赋给整个数组,格式就是(a[5]='c']),不是a[5]={'c','c','c','c','c'}.

你的意思是想给整个数组赋值,且为c是吗?
可以是可以!但是不能写成a[5]='a'
正确的写法应该是:
char a[5]="a";或char a[5]={'c'};

简单的说一下:
这里a是一个字符数组,里面有5个元素,如果写成a[5]='a'意思就变成了给第6个元素赋值且值为'c',这肯定是不可取的

字符数组要整体赋值的话,必须是在定义的时候进行初始化。
char a[5]="a"就表示定义一个字符数组a,5个元素,找到a数组的首地址 并将这个字符串放到该数组中。
char a[5]={'c'}; 这种形式也可以,
绝对不能用a[5]='c'哦
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-17
很简单的问题,当然不是合法的。因为数组a里面只有5个元素。分别是a[0],a[1],a[2],a[3],a[4]。
a[5]明显超界限了。本回答被网友采纳
第2个回答  2010-11-17
不是。因为a[5]要用来存储‘\0’的
第3个回答  2010-11-17
char [5]只是定义五个位置从a[0]~a[4]所以a[5]未定义,呵呵……
第4个回答  2010-11-18
不知道你要表达的是什么意思?将c赋给整个a[5]? 那就是a[0]='c';a[1]='c';a[2]='c';a[3]='c';a[4]='c';
或者a[5]={'c','c','c','c','c'}
或者a[0]='c',其他均为空?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网