先看以下一段代码:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int a[4];
int* b=new int[4];
cout<<sizeof(a)<<endl;
cout<<sizeof(b)<<endl;
return 0;
}
输出结果:16 4
总结:
1.对于数组,sizeof的值等于长度*存储类型的字节长度。对于指针,存的是引用,所以sizieof的值是指存这个地址所用到的字节(在64位编译器中指针是8byte)。
2.不管是什么指针类型,sizeof的值都是4,在64位中都是8.