sizeof与strlen是有着本质的区别,sizeof是求数据类型所占的空间大小,而strlen是求字符串的长度,字符串以/0结尾。
sizeof是一个C语言中的一个关键字,求的是数据类型所占空间的大小,而strlen是一个函数,用来计算字符串的长度,遇见/0就结束。
#include <stdio.h>
int main(void)
{
char a[] = "abcdefg";
int b[4];
int m, n,u;
m = sizeof(a);
n = strlen(a);
u = sizeof(b);
printf("m=%d\n",m);
printf("n=%d\n",n);
printf("u=%d\n",u);
return 0;
}
运行结果:
m=8 //计算的是数组a所占用的空间大小,包括结束符/0
n=7 //计算的是数组a中字符串的长度,不包括结束符/0
u=16 //计算数组b占用的空间大小,int是4字节,所以4*4=16