《Sizeof与Strlen的区别与联系及学习示例》
版权申诉
34 浏览量
更新于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++ 中都是很有用的函数和运算符。通过这些例子的学习,我们可以更加深入地理解它们的使用方法和区别,为以后的编程学习和实践打下坚实的基础。
156 浏览量
2021-09-14 上传
136 浏览量
160 浏览量
2021-09-14 上传
G11176593
- 粉丝: 6927
- 资源: 3万+
最新资源
- Delphi高手突破(官方版).pdf
- LoadRunner中文版文档
- MATLAB 训练讲义toStudents.pdf
- 计算机操作系统(汤子瀛)习题答案
- 构建SOA 的IT 捷径
- 2002年程序员上午试卷
- 雅思王路807 必备雅思工具
- modelsim编译xilinx库的方法.doc
- 西软宽带安全审计管理软件说明书
- kjava开发手册--介绍j2me开发的一些实践
- H.264.pdf,编码解码
- ASP.NET专业项目实例开发(修订版)-课件(部分3)
- ASP.NET专业项目实例开发(修订版)-课件(部分1)
- cuda中文手册--GPU的通用编程
- 2009最新java经典面试题目(包含答案)
- java设计模式中文版