C语言中sizeof()和strlen()的区别(详解版)

您所在的位置:网站首页 jcom1和jfp1的区别 C语言中sizeof()和strlen()的区别(详解版)

C语言中sizeof()和strlen()的区别(详解版)

2024-07-17 04:26| 来源: 网络整理| 查看: 265

很多小白刚刚接触C语言的时候,总是会混淆sizeof()与strlen()的区别和用法,接下来呢,蔡姐就带小白们深入了解一下这两个东西。

区别

1.sizeof是C语言中的一个单目运算符,用来计算数据类型所占空间的大小,单位为字节;而strlen是一个函数,用来计算字符串长度。

2.sizeof()

#include int main() {//计算各种数据类型所占空间的大小 printf("int=%d\n",sizeof(int)); printf("char=%d\n",sizeof(char)); printf("float=%d\n",sizeof(float)); printf("double=%d\n",sizeof(double)); printf("short=%d\n",sizeof(short)); printf("long=%d\n",sizeof(long)); printf("long double=%d\n",sizeof(long double)); return 0; }

另外,我们思考一个问题,指针变量所占空间大小为多少字节呢?(可能有些小白还未涉及到指针)答案是:4个字节;为什么呢?因为指针就是地址呀,所以指针里面放的都是地址,而地址的长度当前是由地址总线的位数决定的,现在的计算机一般都是32位的地址总线,也就是占4个字节

 3.strlen()

是一个函数,需要引用头文件#include ,求字符串长度,返回计算的字符串的实际长度,即不包括‘\0’在内的实际字符的长度。

若没有引用头文件,将会出现如下警告:

我们插入代码,来看看二者的区别

#include #include int main() { char arr1[]="abcd";//d的后面自动补上\0; char arr2[]={'a','b','c','d'};//以单个元素赋值,没有\0的结束符 printf("strlen1=%d\n",strlen(arr1));//strlen()计算\0之前的字符长度 printf("strlen2=%d\n",strlen(arr2));//该处计算结果应为随机值,因为arr2[]没定义元素个数,就无法知道在哪能遇到\0; printf("sizeof1=%d\n",sizeof(arr1));//计算了包含\0的数据空间大小 printf("sizeof2=%d\n",sizeof(arr2)); return 0; }

 

 总结摘要:sizeof就是一个计算数据类型所占空间大小的单目运算符,在计算字符串的空间大小时,包含了结束符\0的位置;而strlen是一个计算字符串长度的函数,使用时需要引用头文件#include ,不包含\0,即计算\0之前的字符串长度。欧耶!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3