#include<stdio.h>void main(){ char p[]={✀1✀,✀2✀,✀3✀},*q=p;printf("%d尀n",sizeof(q));} 结果为什么是4

2024-11-07 10:54:28
推荐回答(2个)
回答(1):

什么都不要看,只要看q的定义。
q的定义语句是:char * q; (当然了,用p初始化了q,不过这不重要)
也就是说,q是一个指针,一个指针占用多少个字节?
指针存放的也就是内存地址,在32位系统下,内存地址是32位的,也就是4个字节。
所以32位系统下,指针始终占用4个字节。
所以以上结果为4

回答(2):

q是指针,占据4个字节,sizeof(q)返回的是q的大小,不是(*q)的大小,所以是4.