一、sizeof与strlen是有着本质的区别,区别如下:
(1) sizeof是一个C语言中的一个单目运算符,而strlen是一个函数,用来计算字符串的长度。
(2) sizeof求的是数据类型所占空间的大小,而strlen是求字符串的长度
二、实例
#include<stdio.h>
#include<string.h>
int main(){
char *b = "abc";
char c[20] = "abcdef";
char d[] = "abcdef";
char e[] = {'a','b','c','d','e','f'};
printf("%d %d\n",sizeof(b),strlen(b)); //sizeof返回指针大小,strlen返回字符串长度
printf("%d %d\n",sizeof(c),strlen(c)); //sizeof返回数组大小,strlen返回字符串长度
printf("%d %d\n",sizeof(d),strlen(d)); //sizeof返回数组大小,strlen返回字符串长度
printf("%d %d\n",sizeof(e),strlen(e)); //sizeof返回数组大小,strlen返回字符串长度
return 0;
}
输出结果如下:
8 3
20 6
7 6
6 6
(注:32位系统中指针大小为4字节,64位系统中指针大小为8字节,上述代码结果是在64位系统中运行的)