IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 常见的C语言误区(sizeof和strlen) -> 正文阅读

[C++知识库]常见的C语言误区(sizeof和strlen)

? ? ? 一、sizeof和strlen的区别

? ? ? ??sizeof 是C语言中的一个关键字,而strlen是一个库函数(包含在<string.h>中),两者的作用看似很像,但是,又大有区别。

  • ????????strlen(只能)是用来测量字符串的长度(并不包括标志着字符串的结束的‘’)。
  • ????????而sizeof是计算一个对象(可以是变量也可以是数据类型)在空间上的大小,也就是占用的空间大小。

? ? ? ? ? ? ? ? 关于strlen的描述大家可以查阅这里的资料:? ?strlen具体描述

????????二、sizeof和strlen的应用场景

? ? ? ? 首先我们来看一道题目。

int num[20] = { 1 , 2, 3, 4, 5, 6, 7, 8, 9, 10 };char arr[50] = "abcdefg001";    求arr的长度和空间大小。    求num的元素个数和空间大小。

? ? ? ? 想一想这个题目是不是很简单。

????????


? ? ? ? 在这个题目中求num的元素个数就可以使用sizeof(num) / sizeof(num[0])? 来求得,这时候sizeof(num) 表示的是这个数组总共占用的空间(也就是数据类型长度 * 元素个数),而sizeof(num[0]) 就表示这个数组的数据类型所占的空间。我们来看一下答案:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Ku-5ZSE5Lqe,size_20,color_FFFFFF,t_70,g_se,x_16

? ? ? ? 可以看到:

  • ????????strlen在使用的时候只计算了''前面的字符。也就是字符个数。
  • ? ? ? ? sizeof在使用的时候计算的是这个对象在内存上占了多少空间。

? ? ? ??


? ? ? ? 注意事项:

  • 虽然使用sizeof? 可以求得一个数组的元素个数,但是不可以跨函数使用,因为一个数组在进行参数传递的时候只会将数组的首地址传过去。这样就算使用??sizeof(num) / sizeof(num[0])??也只会得到1。
  • strlen? 就可以跨函数使用来求元素个数,因为strlen函数求的是字符串的长度,有?' ' 可以规范字符串的结束。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 22:54:07  更:2022-01-29 22:56:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:19:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码