麻烦看下这道c语言的题目.
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/16 19:22:28
麻烦看下这道c语言的题目.
(39)以下语句或语句组中,能正确进行字符串赋值的是___D___.
A.char *sp;*sp="right!"; B.char s[10];s="right!"; C.char s[10];*s="right!"; D.char *sp="right!";
这道题选D?如果是的话说下为什么?
谢谢~~~
(39)以下语句或语句组中,能正确进行字符串赋值的是___D___.
A.char *sp;*sp="right!"; B.char s[10];s="right!"; C.char s[10];*s="right!"; D.char *sp="right!";
这道题选D?如果是的话说下为什么?
谢谢~~~
恩,是的,绝对是选d;
a中,sp是char型指针,那么*sp就是访问sp所指向的内容了,即已不再是指针.而"right!"这也是个指针,只不过是个字符串常量指针,当然就不能赋给不再是指针的*sp啦.
b中,s是个数组名,而数组名就是个常量指针,即它的值是不能改变的.所以不能用另一个常量指针"right!"来给它重新赋值;
c中,s是个常量指针,其指向数组的第0个元素即s[0],所以*s即为s[0],你觉得可以将"right!"赋给s[0]吗?
d中,sp是个刚定义的指针,然后就马上把"right!"这个常量指针值赋给了sp,所以选d了.
哪里不懂可追问:
a中,sp是char型指针,那么*sp就是访问sp所指向的内容了,即已不再是指针.而"right!"这也是个指针,只不过是个字符串常量指针,当然就不能赋给不再是指针的*sp啦.
b中,s是个数组名,而数组名就是个常量指针,即它的值是不能改变的.所以不能用另一个常量指针"right!"来给它重新赋值;
c中,s是个常量指针,其指向数组的第0个元素即s[0],所以*s即为s[0],你觉得可以将"right!"赋给s[0]吗?
d中,sp是个刚定义的指针,然后就马上把"right!"这个常量指针值赋给了sp,所以选d了.
哪里不懂可追问: