sizeof:是操作符,用来计算某种类型的对象在内存中所占内存单元的大小。在头文件中的typedef为unsigned int类型,该类型能保证能容纳实现所建立的最大对象的字节大小。当对象是字符串时,结果为字符串长度加一。
strlen:是函数,用来计算字符串的长度,到’\0’为止,但不需要计算’\0’。
数组做sizeof的参数不退化,做strlen参数退化为指针,sizeof在编译时计算,而strlen在运行时才计算出结果。
例如:
#include <stdio.h>
#include<string.h>
int main()
{
char a[20]="abcdef";
char b[]="abcdef";
printf("%d,%d\n",sizeof(a),strlen(a));
printf("%d,%d\n",sizeof(b),strlen(b));
return 0;
}
输出为:20,6
7,6