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选项为什么错呢?错在哪里?
展开
 我来答
wangbwell
2011-04-05 · TA获得超过1238个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:737万
展开全部
(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'占有的位置)
显然 不相等
zzyyxxaabbcc
2011-04-05 · TA获得超过3641个赞
知道大有可为答主
回答量:3542
采纳率:50%
帮助的人:3203万
展开全部
(A) s和p完全相同:s是字符串数组,p是字符指针,不同。
(B)数组s中的内容和指针变量p中的内容想等:s的内容"china",p的内容是s的首字节的内存地址,不同。
(C)s数组长度和p所指向的字符串长度相等:s数组长度是6(最后一位的值是0),p指向的字符串长度是5,不等。
(D)*p与s[0]值相等:正确。p=s,即p=&s[0],那么*p的值就等于s[0]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友02392aa1c
2011-04-05 · TA获得超过341个赞
知道答主
回答量:146
采纳率:0%
帮助的人:156万
展开全部
好长时间没看C语言了 有点忘记了
A、S为一个字符串,p为指针 概念不相同。
B、指针里面存储的是地址。
C、忘了 好像是字符串最后还有一个空白字符 所以要多一
D、s[0]是字符串的首位,而*p也是指向字符串的首位 所以一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
C的诱惑
2011-04-05 · TA获得超过226个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:96.7万
展开全部
A:s是字符数组,而p只是字符指针;
B:字符数组s存放的就是china,而p只是指向数组s的首地址;
C:s数组的长度就是china字符串的长度,为5,而p所指向的字符串长度还应包括字符串结尾的标识符'\0';
综上所述D是正确答案!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nce009
2011-04-05 · TA获得超过274个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:228万
展开全部
A:不完全相同 比如p能自加 s不能 p++;
B:数组s中是很多元素 p中就一个元素s[0]
C:s数组长度>=p所指向的字符串长度相等 因为s[]可能很大 而只用了一部分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式