【C语言】深入理解指针(5)

目录

sizeof和strlen

1.sizeof

2.strlen

[3. sizeof 和 strlen 的对比](#3. sizeof 和 strlen 的对比)


sizeof和strlen

1.sizeof

  • sizeo正名:sizeof是操作符,不是函数,sizeof是操作符,括号内如果有计算不会进行计算
  • sizeof 是操作符,用于计算变量所占内存空间大小的,单位是字节,如果操作数是变量类型的话,计算的是使用变量类型创建的变量所占内存空间的大小
  • sizeof 只关注占用内存空间的大小,不在乎内存中存放什么数据

2.strlen

  • strlen 是C语言库函数,需要包含头文件#include <string.h> 功能是求字符串长度。函数原型为,统计的是 str 地址开始向后 \0 之前字符串中字符的个数。 strlen 函数会⼀直向后找 \0 字符,直到找到为止,所以可能存在越界查找。
  • 使用 "" 引号引起来的字符串末尾会补上\0
  • 使用 {} 数组括起来的字符末尾不会补上\0

3. sizeof 和 strlen 的对比

sizeof

  1. sizeof是操作符,括号内如果有计算不会进行计算
  2. sizeof计算操作数所占内存的大小, 单位是字节
  3. 不关注内存中存放什么数据

strlen

  1. strlen是库函数,使用需要包含头文件 string.h
  2. srtlen是求字符串长度的,统计的是 \0 之前字符的个数
  3. 关注内存中是否有 \0 ,如果没有 \0 ,就会持续往后找,可能会越界
相关推荐
迪菲赫尔曼12 分钟前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
chari克里1 小时前
QT5.15.2 + msvc2022部署全流程说明(windows可联网环境)
开发语言·c++·qt
Hello.Reader1 小时前
tsrs 技术解析用 Rust 移植 TypeScript 7,类型检查还能怎样提速?
开发语言·rust·typescript
透明的玻璃杯1 小时前
VS2015+QT 多线程
开发语言·qt
码匠许师傅2 小时前
【C++三方组件】mbedTLS:面向嵌入式的轻量 TLS
开发语言·c++
迪菲赫尔曼2 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
2601_962885722 小时前
2026 Python 股票数据接口选型指南(横评 + 决策树)
开发语言·python·区块链
Evand J3 小时前
【PMSM例程4】PMSM电阻辨识与模型补偿EKF,MATLAB例程。附下载链接,包运行成功
开发语言·matlab·电机·ekf·卡尔曼·pmsm
王仔小奶3 小时前
Rust 正在接管金融圈?深度拆解一份高薪 FinTech 岗位 JD
开发语言·金融·rust
小王C语言3 小时前
Qt常用控件:多元素控件,纵向列表,表格控件,树状控件
开发语言·qt