问题 单项选择题

有以下程序段:
char s[]="china"; char *p; p=s;
则以下叙述中正确的是 (40)

A.数组s中的内容和指针变量p中的内容相等

B.s和p完全相同

C.sizeof(s)与sizeof(p)结果相同

D.*p和s[0]相等

答案

参考答案:D

解析:

[分析]:
本题考查对数组和指针的理解。
题目中给出的程序段首先是将字符串"china"放进数组s中,接下来声明了一个字符型指针变量p,并使指针变量p指向数组s。指针变量p中存放的是数组s的首地址,而数组s中存放的是字符串"china",内容根本不同;数组名s是一个常量,表示的是数组首元素在内存中的首地址,虽然指针变量p中存放的也是数组s的首地址,但不完全相同;sizeof( )函数的作用是求参数的长度,由于数组s中的内容和指针变量p中的内容不同,用函数sizeof( )求得的结果肯定不同。*p表示取数组的第一个元素,而s[0]也表示取数组的第一个元素,因此相等。

单项选择题
填空题