变量 | 定义 | 大小(32 bit) | 大小(64 bit) |
char | char ch; | 1 | 1 |
int | int num; | 4 | 4 |
float | float f; | 4 |
|
double | double d; | 8 |
|
long | long l; | 4 |
|
long long | long long ll; | 8 |
|
char数组 | char ch[8]; | 8 | 8 |
char指针 | char *p; | 4 | 8 |
char指针数组 | char *p[8]; | 4*8 | 8*8 |
char指针的指针 | char **p; | 4 | 8 |
函数指针 | void (*myFunc)(void); | 4 | 8 |
函数指针的数组 | void (*myFunc[8])(void); | 4*8 | 8*8 |
|
|
|
|
1. double* (*a)[3][6]; //看成(double *) (*a)[3][6],即一个3×6的二维数组,数组元素为指针,指向double类型。
2. sizeof(a); // = 4,a为指向上述二维数组的指针
3. sizeof(*a); // = sizeof(double *)*3*6 = 72,*a表示上述二维数组
4. sizeof(**a); // = sizeof(double *)*6 = 24,**a即*(*a),表示double*[6],是元素为double指针的一维数组。
5. sizeof(***a); // = sizeof(double *) = 4,表示上述一维数组中的第一个元素,元素类型为double指针。
6. sizeof(****a); // = sizeof(double) = 8,表示上述数组首元素指向的double类型。