第1个回答 2012-07-25
sizeof()求得实际是分配的内存空间, 对数组sizeof其实不是他的长度,只有当数组是字符数组的时候才是,因为32位下,每个字符占一个字节长度,如果是整型数组sizeof的结果是 sizeof(int)* 数组长度, 至于指针, 他是一个指向变量的地址,本是在32位机器下占用4个字节长度。 c++的长度单位是字节。 当然除了用函数计算长度外, 当然可以人工计算,但是人工计算不一定正确, 不确定是多少为机器, 比如int ar[5]; 32位下人工计算是20. 但是机器计算比较好, sizeof(int) * 5 = 20
第2个回答 2012-07-25
因为指针存在的是它指向的地址。。。所以对指针SIZEOF,得到的其实是这个地址的长度,不同机器可能同一程序可能得到不同长度。
SIZEOF数组得到的是数组的长度,就是数组里面元素的个数
第3个回答 2012-07-25
楼上回答不错,C++长度指的是变量,数组,指针等在内存中占用的字节数,c++长度可以手工计算,只需根据相就变量类型来推广算,常见的数据类型如 short int ,int,long int,float,double等等,这些分别占用相应字节数,计算机位数不同,占用字节数也不大相同,如上的占用字节数一般是
2,2,4,4,8。
比如定义:float a[5],则可计算:4*5=20字节,跟sizeof得到的相同
第4个回答 2012-07-25
路过,补充一下
在32位的系统里
sizeof(int)=4字节
sizeof(long)=4字节
在64位的系统里
sizeof(int)=4字节
sizeof(long)=8字节,已在AIX上验证