C语言,数组问题,解释一下各个选项是什么意思?

c语言指针不是太懂,请各位大神详细解释一下

选A
p是数组名,sizeof(p)得到的是数组的大小;
B、D肯定对。
主要是C有点不好理解
char *q=p; 这样定义,说明q是个指针,指向char类型。那么*q就是char类型了,所以sizeof(*q)得到的就是char的size。
q=p这样赋值,意味着把p的值传递给q,p的值是什么呢?p的值其实就是p[0]这个元素的地址。所以*q等于'1'.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-26
答案是A,A算出来的是整个数组的字节数。
B 是char类型的字节数
C (*q) 对指针取内容。q定义成char类型的指针,取出来的当然是char类型的数据了,
所以sizeof(*p)也是char类型的字节数
D p[0]的类型是char 所以 sizeof(p[0])得到的也是char类型的字节数
第2个回答  2014-08-26
sizeof 是查看对象所占的字节数 的函数 q p和p[0]含义一样 sizeof没有直接查看数据类型如char的
相似回答