一、指针
char *p = new char[10];
printf("d%\n",sizeof(p));//输出是?
答案:4
在上述代码中,p声明为指针,尽管它指向了数组的第一个数字,但它的本质仍然是一个指针。
在32位系统上,对任意指针(无论哪种类型)求sizeof,得到的结果都是4。
在64位系统上,对任意指针(无论哪种类型)求sizeof,得到的结果都是8。
二、数组
int data[] = {1,2,3,4,5};
print("d%\n",sizeof(data));//输出是?
答案:20
在上述代码中,data是一个数组,sizeof(data)是求数组的大小。这个数组包含5个整数,每个整数占4个字节(对于32位系统而言),因此总共是20个字节。