《Sizeof与Strlen的区别与联系及学习示例》
版权申诉
50 浏览量
更新于2024-03-07
收藏 124KB DOCX 举报
在学习 Sizeof 与 Strlen 时,需要注意它们的区别与联系。Sizeof 是一个运算符,用于获取数据类型或变量在内存中所占的字节数;而 Strlen 是一个函数,用于获取字符串的长度。在实际应用中,它们的用法及返回值都有一定的差异,下面通过几个例子来具体说明。
例子 1:
```c
char* ss = "0123456789";
sizeof(ss) //4,ss 是指向字符串常量的字符指针
strlen(ss) //10,只能用它获得这个字符串的长度
char ss[] = "0123456789";
sizeof(ss) //11,ss 是数组,计算到 \0‟位置,因此是 10+1
strlen(ss) //10,strlen 是个函数内部实现是用一个循环计算到\0 为止之前
char ss[100] = "0123456789";
sizeof(ss) //100,ss 表示在内存中的大小 100×1
strlen(ss) //10,strlen 是个函数内部实现是用一个循环计算到\0 为止之前
int ss[100] = "0123456789";
sizeof(ss) //400,ss 表示再内存中的大小 100×4
strlen(ss) //错误,strlen 的参数只能是 char* 且必须是以 \0 结尾
```
从这个例子可以看出,对于不同类型的变量或数组,Sizeof 和 Strlen 的返回结果是不同的。而且需要注意的是,在使用 Strlen 函数时,参数必须是 char* 类型的,并且必须以 \0 结尾。
例子 2:
```c
class X{
int i;
int j;
char k;
};
X x;
cout<<sizeof(x); //输出 12,因为类 X 中有两个 int 类型变量和一个 char 类型变量,所以占用的内存大小为 4+4+1=12
```
在这个例子中,我们定义了一个类 X,其中包含了两个 int 类型的变量和一个 char 类型的变量。通过使用 Sizeof 运算符,我们可以得到类 X 占用的内存大小为 12。
再举一个例子,比如想要统计一个数组中的元素个数:
```c
int arr[] = {1, 2, 3, 4, 5};
int length = sizeof(arr) / sizeof(arr[0]);
cout<<length; //输出 5,因为数组 arr 中有 5 个元素
```
通过上面这个例子,我们可以看到,利用 Sizeof 运算符可以很方便地统计数组中的元素个数,而不需要手动去计算。
综上所述,Sizeof 和 Strlen 在 C++ 中都是很有用的函数和运算符。通过这些例子的学习,我们可以更加深入地理解它们的使用方法和区别,为以后的编程学习和实践打下坚实的基础。
2022-10-28 上传
2021-09-14 上传
2022-10-28 上传
2022-11-04 上传
2021-09-14 上传
G11176593
- 粉丝: 6889
- 资源: 3万+
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍