C语言问题:指针变量,数组名,字符串常量的区别。
设有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是:(A)s和p完全相同(B)数组s中的内容和指针变量p中的内容想等(C)s数组长...
设有下面的程序段: char s[ ]="china" ; char * p; p=s; 则下列叙述正确的是: (A) s和p完全相同 (B)数组s中的内容和指针变量p中的内容想等 (C)s数组长度和p所指向的字符串长度相等 (D)*p与s[0]值相等 答案选D 。A B C选项为什么错呢?错在哪里?
展开
展开全部
(A)
s和p完全相同
a的类型是cha数组
p的类型是char指针
不一样
(B)数组s中的内容和指针变量p中的内容想等
数组s中的内容是:
"china"
指针变量p中的内容是:
s[0]的地址(&s[0])
一个是字符串
一个是地址
不一样
(C)s数组长度和p所指向的字符串长度相等
s数组长度包括
'\0'的位置
p所指向的字符串长度不包括
'\0'的位置
s数组长度
==
p所指向的字符串长度
+
1
(1就是'\0'占有的位置)
显然
不相等
s和p完全相同
a的类型是cha数组
p的类型是char指针
不一样
(B)数组s中的内容和指针变量p中的内容想等
数组s中的内容是:
"china"
指针变量p中的内容是:
s[0]的地址(&s[0])
一个是字符串
一个是地址
不一样
(C)s数组长度和p所指向的字符串长度相等
s数组长度包括
'\0'的位置
p所指向的字符串长度不包括
'\0'的位置
s数组长度
==
p所指向的字符串长度
+
1
(1就是'\0'占有的位置)
显然
不相等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询