sizeof() 函数用于获取数据类型或变量所占用的内存字节数,不管这个变量是什么类型,只要是在编译时就能确定其类型的表达式或变量,都可以作为 sizeof() 的参数,例如:
int a = 10;
int arr[10];
printf("%d\n", sizeof(int)); // 输出 4
printf("%d\n", sizeof(a)); // 输出 4
printf("%d\n", sizeof(arr)); // 输出 40
strlen() 函数用于获取一个字符串的长度,即字符串中字符的个数,它只能用于处理以 NULL 结尾的字符串,例如:
char str[] = "hello world";
printf("%d\n", strlen(str)); // 输出 11
需要注意的是,strlen() 函数只计算字符串中的字符个数,不包括字符串末尾的 NULL 字符,因此上面的例子中输出的是 11,而不是 12。
综上所述,sizeof() 和 strlen() 的主要区别在于:
- sizeof() 获取数据类型或变量所占用的内存字节数,而 strlen() 获取字符串中字符的个数。
- sizeof() 可以用于任何数据类型或变量,而 strlen() 只能用于以 NULL 结尾的字符串。