【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 ,就会持续往后找,可能会越界
相关推荐
yuniko-n4 小时前
【Java】关于容器选型:Deque、PriorityQueue、LinkedList
java·开发语言
扶风ff4 小时前
练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中
开发语言·javascript·学习·小程序
yuniko-n4 小时前
【JUC】wait 和 sleep
java·开发语言
kimnoic4 小时前
Python常见模块及其用法示例详解
开发语言·python
程序员-Benothing4 小时前
Linux文本排序统计命令:sort、uniq、wc、cut、tr实战
java·开发语言·算法
CRMEB4 小时前
前后端技术栈全面换代!CRMEB 多商户(Java)v3.0更新预告
java·开发语言
JQLvopkk4 小时前
HslCommunication,一个工具测遍所有 PLC
开发语言·人工智能·c#·交互
ao-weilai4 小时前
MySQL数据库:C语言连接MySQL教程
c语言·数据库·mysql
阿狗童鞋4 小时前
Python爬虫进阶实战指南
开发语言·爬虫·python
下页、再停留4 小时前
【C#桌面客户端系列学习-7】数据查询展示
开发语言·c#·visual studio