当前位置:网站首页>C语言sizeof和strlen的区别
C语言sizeof和strlen的区别
2022-08-02 14:02:00 【熬夜退役选手337】
strlen()是库函数,是求字符串长度的,只关注字符串中是否有\0,统计\0之前字符的个数
sizeof()是操作符,只关注内存占用的大小,不关注内存中存放的数据,返回的单位是字节
————————————————
int main()
{
char arr1[] = "abcdef";//arr1是一个数组的名称,
char arr2[] = { 'a','b','c' };
printf("%s\n", arr1);
printf("%s\n", arr2);//%s是打印字符串
//string lenth
//strlen是库函数,是专门求字符串长度的函数
// \0是结束标志,不算入长度中
printf("arr1的字符串的实际长度:%d\n", strlen(arr1));
printf("arr2的字符串的实际长度长度:%d\n", strlen(arr2));
printf("arr1编译时分配数组的空间大小:%d\n", sizeof(arr1));
printf("arr2编译时分配数组的空间大小:%d\n", sizeof(arr2));
return 0;
}
运行结果如下图所示:
\0是字符串结束的标志
为什么arr1的长度是6呢?
arr1中的字符是 a 、b、c、d、e、f、\0
\0我们是看不到的,因为不显示出不来,但是运行监视的时候可以看到
可以看到arr[6]是\0
因为strlen()是不统计\0的,所以只需要算abcdef
为什么arr2的实际长度是18?
因为字符串的结束标志是\0,这种数组的写法后面是不会自动添加\0的,后面的数据随机出现直到出现\0结束,所以arr2的字符串长度是随机的,18也是随机的;
这段代码和上面那个一样,但是arr2的实际长度变成了15
arr1和arr2的分配空间,因为是char,一个字符开辟的空间就是一个字节,所以分别为7和3;
如有错误欢迎指正!
如有帮助请一键三连,蟹蟹!!!
如有错误欢迎指正!
如有帮助请一键三连,蟹蟹!!!
如有错误欢迎指正!
如有帮助请一键三连,蟹蟹!!!
边栏推荐
- What are the file encryption software?Keep your files safe
- verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十二章)
- redis分布式锁和看门狗的实现
- window10 lower semi-automatic labeling
- paddleocr window10 first experience
- jwt(json web token)
- paddle window10环境下使用conda安装
- 无序数组排序并得到最大间隔
- php开源的客服系统_在线客服源码php
- drf source code analysis and global catch exception
猜你喜欢
MobileNet ShuffleNet & yolov5替换backbone
Deep learning framework pytorch rapid development and actual combat chapter3
Visual Studio配置OpenCV之后,提示:#include<opencv2/opencv.hpp>无法打开源文件
chapter7
How does Apache, the world's largest open source foundation, work?
How to solve 1045 cannot log in to mysql server
Deep learning framework pytorch rapid development and actual combat chapter4
第十五单元 分页、过滤
The 2nd China Rust Developers Conference (RustChinaConf 2021~2022) Online Conference Officially Opens Registration
[ROS](02)创建&编译ROS软件包Package
随机推荐
如何自定义feign方法级别的超时时间
The IDEA of packaged jar package
瑞吉外卖笔记——第08讲读写分离
Unit 15 Paging, Filtering
Unit 8 Middleware
Unit 6 meet ORM
Flask framework in-depth two
ToF相机从Camera2 API中获取DEPTH16格式深度图
Raft协议图解,缺陷以及优化
Unit 11 Serializers
[ROS](04)package.xml详解
【Camera2】由Camera2 特性想到的有关MED(多场景设备互动)的场景Idea
Flask框架
Flask-RESTful请求响应与SQLAlchemy基础
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第七章)
[ROS] (05) ROS Communication - Node, Nodes & Master
Verilog Learning Series
Flask请求应用上下文源码分析
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十章)
[ROS] (04) Detailed explanation of package.xml