变量 |
定义 |
大小(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类型。