#include <stdio.h>
int main(void)
{
int i;
char a[][5] = {"LISP", "C", "Ada"};
char *p[] = {"PAUL", "X", "MAC"};
for (i = 0; i < 3; i++)
printf("a[%d] = \"%s\"\n", i, a[i]);
for (i = 0; i < 3; i++){
printf("p[%d] = \"%s\"\n", i, p[i]);
printf("p[%d]占用%d字节\n", i, sizeof(p[i]));
};
printf("p占用%d字节\n", sizeof(p));
return 0;
}
代码如上,我理解p[0]所占用的字节是4,p[1]所占用的字节是1,p[2]所占用的字节是3.
但是,实际情况是这样的,如下图所示
想请问高手,这是为什么?谢谢!