/* 在32位系统下,分别定义如下两个变量:char *p[10],char(*p1)[10],sizeof(p),sizeof(p1)分别值为___________。 */ #include <stdio.h> #include <stdlib.h>void main() {char *p[10],(*p1)[10],p2[10],p3;printf("%d,%d,%d,%d,%d,%d",sizeof(p),sizeof(*p),sizeof(p1),sizeof(*p1),sizeof(p2),sizeof(p3)); }
输出结果是:
char *p[10],定义的是一个字符指针数足,p指向整个数组,所以是32/8=4,4*10=40
*p指的就是存储这个指针的空间,所以是4
char (*p1)[10] p指的就是存储这个指针的空间,所以是4
(*p1)指向数组,char的是1,1*10(p2[10]同理)