一、sizeof获取一个对象或者类型所占的字节数
1、普通类型
char、int、long、double等
返回的字节数和系统有关
2、指针类型
指针类型存放的其实就是地址,32为系统中其所占字节数都为4
3、数组
数组所占字节数等于 数组类型字节数*数组长度
4、struct
所占字节总数为最大成员所占字节数的倍数;且最大成员之前所有成员所占的总字节数,也必须是该最大成员所占字节数的倍数。
二、strlen获取字符串的长度,以"\0"为结束标志,并且不将其计算在内。
int a =0;
char c =0;
int *pa = &a;
char* pc =&c;
int sa[10];
char sc[10]={1,1,1,1,1};
char*psc=sc;
struct sts1{
char tc;
int ta;
};
struct sts2{
char tc;
char tc2;
int ta;
};
printf("a %d\n",sizeof(a)); //4
printf("c %d\n",sizeof(c)); //1
printf("pa %d\n",sizeof(pa)); //4
printf("pc %d\n",sizeof(pc)); //4
printf("sa %d\n",sizeof(sa)); //40
printf("sc %d\n",sizeof(sc)); //10
printf("psc %d\n",sizeof(psc)); //4
printf("strlen psc %d\n",strlen(psc)); //5
printf("sts1 %d\n",sizeof(struct sts1)); //8
printf("sts2 %d\n",sizeof(struct sts2)); //8
//~End~