c++ sizeof空间计算
常见数据类型的sizeof结果
//x86
sizeof(char): 1
sizeof(short): 2
sizeof(int):4
sizeof(long): 4
sizeof(float): 4
sizeof(double): 8
sizeof(p): 4 //p是指针
//x64
sizeof(char): 1
sizeof(short): 2
sizeof(int):4
sizeof(long): 8
sizeof(float): 4
sizeof(double): 8
sizeof(p): 8 //p是指针
主要差别就是在于long和指针类型,注意所有指针变量的操作结果是一样的。
下述结果默认在windows x86编译环境所得。
引用,汉字和数组
引用
所有引用变量的sizeof,等同于被引用对象的sizeof。
int x[5] = { 1,2,3,4,5 };
int (&p)[5] = x;
int &p2 = x[1];
cout << sizeof(p) <<" "<<sizeof(p2)<< endl;
//cout << sizeof(x) << " "<< sizeof(x[1]) << endl;
输出结果为20和4,和注释的语句结果是一样的。
汉字
在c/c++中汉字占两个字节,需要注意的是字符串末尾还有一个空字符
char x[] = "哈哈哈hhh";
cout << sizeof(x) << " "<< sizeof(x[1]) << endl;