当前位置:网站首页>C语言sizeof和strlen的区别
C语言sizeof和strlen的区别
2022-07-06 02:36:00 【小阳先生的宝库】
主要区别如下:
1、sizeof是运算符,strlen是C语言标准库函数。
2、 strlen 测量的是字符串的实际长度,以’\0’ 结束,返回结果不包括’\0’ 。
3、而sizeof 测量的是字符的分配大小,它的参数可以是数组、指针、类型、对象、函数等。
具体而言,当参数分别如下时,sizeof返回的值含义如下:
数组-编译时分配的数组空间大小;
指针-存储该指针所用的空间大小;
类型-该类型所占的空间的大小;
对象-对象的实际占用空间大小;
函数-函数返回类型所占空间的大小;
例题1:
char *str1=“absde”;
char str2[]=“absde”;
char str3[8]={‘a’,};
int str4[8]={‘a’,};
char ss[] = “0123456789”;
输出:
sizeof(str1); // 4,计算的是指针内存的大小,包括’\0’
sizeof(str2); // 6 ,计算的是字符串的内存大小,包括’\0’
sizeof(str3); // 8 ,计算的是char型数组的内存大小
sizeof(str4); // 32 ,计算的是int型数组的内存大小
sizeof(ss); // 11 ,计算的是字符串的大小,包括’\0’
strlen(str1); // 5 ,计算的是字符串长度,不包括‘\0’
strlen(str2); // 5 ,计算的是字符串长度,不包括‘\0’
strlen(str3); // ? ,因为字符串需要找到’\0’才可结束,要在’a’之后找到’\0’,所以是个随机值
strlen(str4); // ? ,因为字符串需要找到’\0’才可结束,要在’a’之后找到’\0’,所以是个随机值
strlen(ss); // 10 ,计算的是字符串长度,不包括‘\0’
例题2:
what is the output of this code?
char s[20]=“Hello\0Hi”;
printf(“%d %d”,strlen(s),sizeof(s));
A 5 9
B 7 20
C 5 20
D 8 20
正确答案 C
例题3
char str[]=“hello”;
char *p=str;
int n=10;
//请计算
sizeof(str); //6,5+1=6,1代表’\0’
sizeof§; //4,代表指针
sizeof(n); //4,整形占据的存储空间
void func(char str[100])
{
sizeof(str); //4,此时str已经转换为指针了
}
void *p=malloc(100);
sizeof§;//4,指针大小
————————————————
版权声明:本文为CSDN博主「贤瓜苦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_52368521/article/details/124950895
边栏推荐
- MySQL winter vacation self-study 2022 11 (8)
- 2022 eye health exhibition, vision rehabilitation exhibition, optometry equipment exhibition, eye care products exhibition, eye mask Exhibition
- Template_ Quick sort_ Double pointer
- 微软语音合成助手 v1.3 文本转语音工具,真实语音AI生成器
- 构建库函数的雏形——参照野火的手册
- Gifcam v7.0 minimalist GIF animation recording tool Chinese single file version
- Easy to use js script
- [Yunju entrepreneurial foundation notes] Chapter II entrepreneur test 6
- 米家、涂鸦、Hilink、智汀等生态哪家强?5大主流智能品牌分析
- 【无标题】数据库中一条查询SQL执行的过程
猜你喜欢
[Yunju entrepreneurial foundation notes] Chapter II entrepreneur test 7
Li Kou today's question -729 My schedule I
[Yunju entrepreneurial foundation notes] Chapter II entrepreneur test 15
如何精准识别主数据?
[postgraduate entrance examination English] prepare for 2023, learn list5 words
爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Gifcam v7.0 minimalist GIF animation recording tool Chinese single file version
Paper notes: graph neural network gat
Blue Bridge Cup group B provincial preliminaries first question 2013 (Gauss Diary)
随机推荐
MySQL winter vacation self-study 2022 11 (7)
GifCam v7.0 极简GIF动画录制工具中文单文件版
3D drawing ()
2020.02.11
Déduisez la question d'aujourd'hui - 729. Mon emploi du temps I
2345 file shredding, powerful file deletion tool, unbound pure extract version
【MySQL 15】Could not increase number of max_open_files to more than 10000 (request: 65535)
会员积分营销系统操作的时候怎样提升消费者的积极性?
[Yunju entrepreneurial foundation notes] Chapter II entrepreneur test 16
HDU_p1237_简单计算器_stack
好用的 JS 脚本
[robot library] awesome robots Libraries
米家、涂鸦、Hilink、智汀等生态哪家强?5大主流智能品牌分析
Bigder:34/100 面试感觉挺好的,没有收到录取
Advanced technology management - what is the physical, mental and mental strength of managers
纯Qt版中国象棋:实现双人对战、人机对战及网络对战
Thinking on Architecture Design (under continuous updating)
How to check the lock information in gbase 8C database?
模板_快速排序_双指针
从顶会论文看2022年推荐系统序列建模的趋势