[C语言]第4题为什么选C?能给出详细解释么?

如题所述

第1个回答  2013-12-17
C++的赋值语句具有其他高级语言的赋值语句的功能。但不同的是: C++中的赋值号“=”是一个运算符,可以写成
a=b=c=d;
而在其他大多数语言中赋值号不是运算符,上面的写法是不合法的。
不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
这样写是可以的(不是赋值,是初始化)。意思就是定义一个字符数组,并初始化,结果是:
s[0]='a'
s[1]='s'
s[2]='d'
s[3]='f'
s[4]='\0'

下面的写法是错误的,这说明:“不能在赋值语句中通过赋值运算符‘=’对字符型数组进行整体赋值。”这句话是对的。
char s[5];
s[5]="asdf";追答

char s[6]="abcd";
这样子是可以的,这个是“初始化”。

char s[6];
s=”abcd”;
的写法,编译器虽然可能可以通过,但是如此这般便把s指到了常量区,是不行的。一般认为数组名是一个“常量地址”,不能够变化的,严格的编译器不会通过这个赋值。
所以C会错误的。ABD均正确。建议多看老师给大家安讲义,多做题就没问题了。
不懂请追问

相似回答