关于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',其他均为空?

C语言-赋值表达式
在C语言编程中,赋值公式是基础语法的关键,它的形式为 变量名 = 表达式。但请注意,这里的“=”并非数学中的等号,它具有独特的运算规则和作用。首先,我们要明确赋值运算的顺序:自右向左进行,即先计算出表达式的值,然后将这个值赋予左边的变量。例如,a = b = 1 是正确的,因为会先计算b的值...

c语言中int赋值为0的问题
有符号变量的取值范围为-32678~32767,无符号变量的取值范围0~65535.而你在这里的变量为65536,所以数据发生了溢出,int为两个字节,16位,那么在内存中就变成了10000000000000000,1就会被放到下个字节,代表int的字节就会变成了全零,所以结果为全零。很荣幸为您解答问题,祝您开心,生活愉快~~~

C语言中赋值语句有什么规则要求
赋值的语法规则就是: 数据类型 变量名 = 表达式 表达式可以理解为一个值或一个计算公式就行,表达式加一个英文符号分号就是语句。 例如: 我们今天要用到的,我买了几斤苹果。 就可以这样写:方式一: Int apple_count = 0; \/\/告诉计算机apple_count是用来存买苹果的斤数的,默认为0;方式二: ...

c语言赋值语句怎么是合法
答题公式1:++ 回答1:C语言赋值语句一般是合法的。在C语言中,赋值语句是一种基本的语言结构,用于给变量或数组等赋值,因此,赋值语句在编程中是非常常见的,也是C语言的基础语法之一,大部分情况下都是合法的。在C语言中,基本的赋值语句形式是:变量名 = 表达式;其中变量名表示一个变量,等号“=...

c语言中什么是赋值?什么是错?
对于如下说明,语法和语义都正确的赋值是:C、s=&a[1];A、语法上正确(可能引起编译警告)。若非静态变量或全局变量,否则s没有被初始化,是随机值,*s的值无法确定,即没有确定的语义;若是静态变量或全局变量,s被初始化为0,对地址0的解引用操作没有确定的语义。B、错误。理由同上,对随机...

关于C语言字符数组的赋值最后自动添加‘\\0’问题
c[5]只有5个空间无法完全容纳字符串"hello",因为这个字符串需要占用6个字符位置。所谓自动加'\\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号0,而不是运行时添加的。如果你用debug方式运行程序,调试环境自动会把你开设的char a[5];进行初始化0的...

一题关于赋值的C语言题
答案是:1,1,3 ++c 是先加再赋值,c++是先赋值再加 第一句:a = ++c;因为是++c,所以,先是c=c+1,也就是c=0+1,所以c=1,在有a=c,所以a=1;第二句:b=c++;因为是c++,所以,先是b=c,所以,b=1,在有c=c+1,也就是c=1+1,所以c=2了;最后一句:printf("%d d d\\...

c语言中赋值号的使用规则是什么?
在赋值语句的使用中需要注意以下几点:1. 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成嵌套的情形。 其展开之后的一般形式为:变量=变量=…=表达式;例如: a=b=c=d=e=5; 按照赋值运算符的右接合性,因此实际上等效于: e=...

C语言指针的赋值问题
int *p;p为指针,地址是未知的,如果直接赋值 p=a;这样编译可以通过,但是会产生警告,p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。可以int *p=&a;或者int *p;p=&a;然后再对p进行操作 有错。注意大小写...

c语言的赋值表达式,如i++为什么会有值?
能够优化类似的代码。现代语言倾向于减少或完全消除赋值表达式的使用,如Lua中赋值为语法,不可作为表达式;Python允许连续赋值,但提供语法糖支持;Rust中赋值表达式值为Unit,即类似void,不会引起混淆。总的来说,C语言的赋值表达式特性在某些场景下提供了便利,但其带来的问题也逐渐引起了关注。

相似回答