当前位置: 首页 > news >正文

C/C++ 中 str、str、*str 在指针语境下的具体含义(以 char* str 为例):

1. str(指针变量本身)

  • 对于 char* str 来说,str 是一个指针变量,它存储的是内存地址(指向某个字符或字符数组的首地址)。
  • 例如:char* str = "hello"; 中,str 存储的是字符串 "hello" 第一个字符 'h' 的内存地址。
  • 可以理解为:str 本身代表地址值(指向目标数据的位置)。

2. &str(指针变量的地址)

  • &str 表示取指针变量 str 自己的内存地址(即指针变量本身所在的内存位置)。
  • 这是一个 “地址的地址”,类型是 char**(指向指针的指针)。
  • 例如:str 存储着 "hello" 的地址(假设为 0x1234),而 &str 是 str 这个变量自己在内存中的地址(假设为 0x5678)。
  • 注意:&str 不是 “值”,而是指针变量自身的地址。

3. *str(指针指向的值)

  • *str 表示解引用,即获取指针 str 所指向的内存位置中存储的实际数据
  • 对于 char* str 来说,*str 就是 str 指向的第一个字符(如 "hello" 中的 'h')。
  • 可以理解为:*str 代表指针指向的具体值(目标数据本身)。

总结(以 char* str = "abc"; 为例)

表达式含义举例(假设)
str指针变量存储的地址(指向目标数据)存储 'a' 的地址 0x1000
&str指针变量自身的地址(地址的地址)存储 str 变量的地址 0x2000
*str指针指向的目标数据(解引用结果)获取 0x1000 处的值 'a'

简单记:

  • str 是 “指向数据的地址”,
  • &str 是 “指针自己的地址”,
  • *str 是 “地址指向的数据”。
http://www.dtcms.com/a/338090.html

相关文章:

  • 深化中东战略承诺,联想集团宣布在利雅得设区域总部
  • wait / notify、单例模式
  • 【深度学习基础】PyTorch Tensor生成方式及复制方法详解
  • 【每日一题】Day 7
  • Linux——进程间、线程间的通信
  • 【C++】 using声明 与 using指示
  • 《彩色终端》诗解——ANSI 艺术解码(DeepSeek)
  • C++设计模式:建造者模式
  • 《若依》权限控制
  • ESP32小智-语音活动(VAD)检测流程
  • Pytorch GPU版本安装保姆级教程
  • 【Python面试题】描述一次解决内存泄漏的过程。如何用tracemalloc或者objgraph定位问题?什么情况下会用__slots__?
  • 【领码课堂】AI写码不再“盲跑”,方案先行,自动化高效落地
  • BOSS直聘招聘端AI辅助自动化技术研究
  • 某储备土地前期开发项目控制保护区桥梁自动化监测
  • 8.19 note
  • HashMap:源码
  • OpenLayers 入门指南【七】:加载自定义控件
  • 部署耐达讯自动化Profibus转光纤方案,变频器通信从此告别‘掉线焦虑’!“
  • Next.js数据获取
  • 飞算JavaAI智慧文旅场景实践:从景区管理到游客服务的全链路系统搭建
  • 无人机激光测距技术应用与挑战
  • 【前端进阶】UI渲染优化 - 骨架屏技术详解与多框架实现方案
  • Maven(一)
  • 做一个答题pk小程序多少钱?
  • 《红色脉-络:一部PLMN在中国的演进史诗 (1G-6G)》 第6篇 | 专题:核心网的第一次革命——从电路交换到“用户/控制面分离”
  • java17学习笔记-增强型伪随机数生成器
  • LeetCode100-438找到字符串中所有的字母异位词
  • 上网行为管理之用户认证技术和应用控制技术
  • 开源im即时通讯软件开发社交系统全解析:安全可控、功能全面的社交解决方案