若有下面的程序段: char s[]="china"; char *p; p=s; 则下列叙述正确的是________

若有下面的程序段: char s[]=“china”; char *p; p=s; 则下列叙述正确的是________
A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等
C)s数组长度和p所指向的字符串长度相等 D)﹡p与s[0]相等
答:答案:D
A:s是字符数组,p是指向字符串的指针
B:显然数组s中的内容和指针变量p中的内容不相等,应该换一种说法“数组s中的内容和指针变量p所指向的字符串的内容相等”
C:s数组的长度为6(包含结束符’\0’),p所指向的字符串长度为5
D:*p=‘c’,s[0]=‘c’
追问
p所指向的字符串长度为啥是5呢?它不识别’\0’吗?
追答
‘\0’不计入字符串总长度

    原文作者:1#12
    原文地址: https://blog.csdn.net/weixin_45679864/article/details/103600360
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞