9.设有下面的程序段:则下列叙述正确的是( ).char s[]="china"; char * p; p=s;A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等C) *p与s[0]相等 D) s数组长度和p所指向的字符串长度相等答案

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 22:03:51

9.设有下面的程序段:则下列叙述正确的是( ).char s[]="china"; char * p; p=s;A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等C) *p与s[0]相等 D) s数组长度和p所指向的字符串长度相等答案
9.设有下面的程序段:则下列叙述正确的是( ).
char s[]="china"; char * p; p=s;
A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等
C) *p与s[0]相等 D) s数组长度和p所指向的字符串长度相等
答案为什么选C而不选A?

9.设有下面的程序段:则下列叙述正确的是( ).char s[]="china"; char * p; p=s;A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等C) *p与s[0]相等 D) s数组长度和p所指向的字符串长度相等答案
P是指针,也就是地址 *P表示的就是指针指向的内容 P=S这句话的意思就是将数组中的第一个元素的地址赋给P
S和P怎么能是完全相同呢 S是第一个元素的地址 而P是变化的

s其实在存储单元内就是数组起始位置,这么p是指针变量,而s是存储单元的位置,是值与变量的关系
满意请采纳

因为*p是一个指针,程序中只是把s[0]的地址赋给了p,而*p指的是地址中的值,所以*p=s[0],具体可参考c语言关于指针的介绍