下面判断正确的是()。
A. char *s="girl"; 等价于 char *s; *s="girl";
B. char s[10]={"girl"}; 等价于 char s[10]; s[10]={"girl"};
C. char *s="girl"; 等价于 char *s; s="girl";
D. char s[4]= "boy", t[4]= "boy"; 等价于 char s[4]=t[4]= "boy"
【答案】:C
【解析】:A....
用户登录可进行刷题及查看答案
【解析】:A.不等价的原因在于后一组语句“char *s; *s="girl";”, 其中s是指针变量,在引用一个指针变量之前,应对其赋一个初值,即将一个字符串的地址赋给它。指针变量前不加“*”,代表地址;加“*”代表该地址对应的字符,本题中“*s="girl"”语句的目的是给该指针赋初值(地址),故应该去掉s前的“*”,两组语句方等价。B.的错误在于后一组语句“char s[10]; s[10]={"girl"};”数组可以在定义的同时赋初值,或者通过strcpy函数赋值,但绝对不可以使用赋值语句赋值。D.的错误在于后一组语句“char s[4]=t[4]="boy";”,C语言规定在对多个变量赋以同一个值时,不可以使用连等的方式,必须分别赋值。
登录后提交答案
暂无评论,来抢沙发