机器平台:X86_64 处理器
操作系统:Red Hat 4.1.2-14
编译器: gcc version 4.1.2 20070626
Size of char is: 1
Size of unsigned char is: 1
Size of signed char is: 1
Size of int is: 4
Size of short is: 2
Size of long is: 8
Size of long int is: 8
Size of signed int is: 4
Size of unsigned int is: 4
Size of unsigned long int is: 8
Size of long long int is: 8
Size of unsigned long long is: 8
Size of float is: 4
Size of double is: 8
Size of long double is: 16
Size of (void *) is: 8
Size of (char *) is: 8
Size of (int *) is: 8
Size of (long *) is: 8
Size of (long long *) is: 8
Size of (float *) is: 8
Size of (double *) is: 8
所有指针都是占8字节
——————————————————————————
机器平台: X86_32 处理器
操作系统: Windows XP SP2
编译器: VS2005自带的C++编译器
Size of char is: 1
Size of unsigned char is: 1
Size of signed char is: 1
Size of int is: 4
Size of short is: 2
Size of long is: 4
Size of long int is: 4
Size of signed int is: 4
Size of unsigned int is: 4
Size of unsigned long int is: 4
Size of long long int is: 8
Size of unsigned long long is: 8
Size of float is: 4
Size of double is: 8
Size of long double is: 8
Size of (void *) is: 4
Size of (char *) is: 4
Size of (int *) is: 4
Size of (long *) is: 4
Size of (long long *) is: 4
Size of (float *) is: 4
Size of (double *) is: 4
所有指针都是占4字节
sizeof()用法汇总
sizeof()功能:计算数据空间的字节数
1.与strlen()比较
strlen()计算字符数组的字符数,以”\0”为结束判断,不计算为’\0’的数组元素。
而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。
2.指针与静态数组的sizeof操作
指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为4。
注意:int *p; sizeof(p)=4;
但sizeof(*p)相当于sizeof(int);
对于静态数组,sizeof可直接计算数组大小;
例:int a[10];char b[]=”hello”;
sizeof(a)等于4*10=40;
sizeof(b)等于6;
b数组的长度:size(b)/size(b[0])
注意:数组做型参时,数组名称当作指针使用!!
void fun(char p[])
{sizeof(p)等于4}
经典问题:
double* (*a)[3][6];
cout<