不同机器上变量的大小(x86)

变量

定义

大小(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类型。  







猜你喜欢

转载自blog.csdn.net/lcxhjg/article/details/80910408