sizeof用于计算数据类型大小
一般的数据类型随机器不同,字节大小也不同
计算int char之类的类型
计算int *, char *之类的类型
计算指针类型的字节大小,我这里都是4字节(包括结构体类型指针变量)
计算结构体变量大小
参考:https://www.cnblogs.com/wlzy/p/5897933.html
#include<stdio.h>
typedef struct{
char a;
int b;
} Test;
typedef struct{
double c;
Test d;
} Test2;
int main(int argc, char const *argv[])
{
printf("char = %d\n", sizeof(char));
printf("char * = %d\n\n", sizeof(char *));
printf("short = %d\n", sizeof(short));
printf("short * = %d\n\n", sizeof(short *));
printf("int = %d\n", sizeof(int));
printf("int * = %d\n\n", sizeof(int *));
printf("float = %d\n", sizeof(float));
printf("float * = %d\n\n", sizeof(float *));
printf("double = %d\n", sizeof(double));
printf("double * = %d\n\n", sizeof(double *));
printf("struct = %d\n", sizeof(Test));
printf("struct * = %d\n\n", sizeof(Test *));
printf("struct2 = %d\n", sizeof(Test2));
printf("struct2 * = %d\n\n", sizeof(Test2 *));
char a[5]="12", b[]="1234";
printf("a = %d\n", sizeof(a));
printf("a[0] = %d\n\n", sizeof(a[0]));
printf("b = %d\n", sizeof(b));
printf("b[0] = %d\n\n", sizeof(b[0]));
char *c[2];
printf("c = %d\n", sizeof(c));
printf("c[0] = %d\n\n", sizeof(c[0]));
char d[2][3];
printf("d = %d\n", sizeof(d));
printf("d[0] = %d\n", sizeof(d[0]));
return 0;
}