1.sizeof操作符
sizeof专门用来计算sizeof的操作符数的类型长度的,单位是字节
sizeof(//类型)
sizeof//表达式
sizeof的操作数如果不是类型,是表达式的时候可以省略掉后边的括号,sizeof后面的表达式是不真实参与运算的,根据表达式的类型得出大小
(1)sizeof专门用来计算sizeof的操作符数的类型长度的,单位是字节
例;
#include<stdio.h>
int main()
{
int a=1;
printf("%zd\n",sizeof(a));//打印结果为4
printf("%zd",sizeof a);//打印结果为4,a是变量名字,可以省略()
printf("%zd",sizeof(int));//打印结果为4
printf("%zd",sizeof(3+1.5));//打印结果为8
return 0;
}
注:int类型一般为4个字节,双精度浮点型一般为8个字节
sizeof用来统计参数所占的内存空间
如:
char s[20]="hello";
printf("%d",sizeof(s));//打印结果为20
(2)sizeof表达式不计算
//short类型所占的字节数为2
#include<stdio.h>
int main()
{
short a=2;
int b=1;
printf("%d\n",sizeof(a=b+1));//打印结果为2
printf("a=%d\n",a);//打印结果为2
return 0;
}
short类型所占字节数为2
第一个printf打印结果为2,是根据a的数据类型,short类型所占的字节数是2
第二个printf打印结果为2,是因为a=2
2.strlen()
strlen()专门用于计算字符串的长度,直到’\0’结束,只适用于字符串类型,计算的长度不包括’\0’
3.两者的对比
sizeof用于获取变量或数据类型的字节大小,适用于任何数据类型,有末尾空字符时包括末尾的空字符“\0"
strlen()专门用于计算字符串的长度,直到’\0’结束,只适用于字符串类型,计算的长度不包括’\0’