news 2026/4/16 9:09:26

指针在 C++ 中最核心、最实用的两个作用:“避免大数据的复制” 和 “共享”。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
指针在 C++ 中最核心、最实用的两个作用:“避免大数据的复制” 和 “共享”。

1. 作用一:避免昂贵的“深拷贝”(提升运行速度)

在计算机中,变量赋值通常是“复制粘贴”。

  • 如果不使用指针(直接用对象):IMAGE是一个很大的结构体(里面包含成千上万个像素点的数据)。 如果你写Block b2 = b1;,计算机必须把b1图片里的每一个像素点都复制一遍给b2。这叫“深拷贝” (Deep Copy)

    • 后果:CPU 累死,卡顿。

  • 使用指针(现在的写法):IMAGE *img只是一个整数(内存地址)。 当你写b2.img = b1.img;时,计算机只需要复制这个由 8 个字节(64位系统)组成的地址号码。这叫“浅拷贝” (Shallow Copy)

    • 后果:CPU 几乎不费吹灰之力,操作瞬间完成。

2. 作用二:实现“一对多”的资源共享(节省内存空间)

这是指针最迷人的地方。它允许多个对象共同使用同一个数据源

  • 场景:你的游戏里可能会同时出现 100 个红色的 Z 型方块。

  • 不指针对比:你需要内存里存 100 份一模一样的红色 Z 型图片数据。

  • 指针做法

    1. 你在内存的静态区(static)只存1 份红色 Z 型图片。

    2. 那 100 个方块对象里,每个方块只存一个指针,全部指向那唯一的 1 份图片。

图解关系:

Plaintext

[方块对象 Block 1] ----\ \ [方块对象 Block 2] ----+----> [ 真正硕大的图片资源 (IMAGE) ] / (内存中只存在一份) [方块对象 Block 3] ----/

3. 通俗比喻:网页链接 vs 网页截图

为了让你彻底明白,我们可以用“发给朋友看网页”做比喻:

  • 不用指针 (传值): 你把整个网页从头到尾截图(甚至打印出来),然后发给朋友。

    • 缺点:文件很大,发送很慢,浪费手机存储。

  • 使用指针 (传址): 你只复制了网页的URL 链接(网址)发给朋友。

    • 优点:只有一行字,发送极快。朋友点击链接,看到的是云端同一个网页。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 19:59:31

基于Excalidraw的AI绘图平台搭建:释放GPU算力潜能

基于Excalidraw的AI绘图平台搭建:释放GPU算力潜能 在技术团队频繁进行架构讨论、产品原型设计和远程协作的今天,一张清晰直观的草图往往胜过千言万语。但现实是,很多人卡在“怎么画”这一步——不是不会用Figma,而是根本不想为了…

作者头像 李华
网站建设 2026/4/15 23:42:45

DAY45 TensorBoard深度学习可视化工具

一、TensorBoard 简介与核心原理 1.1 什么是 TensorBoard TensorBoard 是 TensorFlow 生态系统中的官方可视化工具,目前已完美兼容 PyTorch。它就像给深度学习模型装上了一个“监控仪表盘”,将枯燥的训练日志(如 Loss 值、准确率、权重分布…

作者头像 李华
网站建设 2026/4/11 17:04:39

Excalidraw移动端体验:跨平台使用是否顺畅?

Excalidraw移动端体验:跨平台使用是否顺畅? 在通勤的地铁上突然冒出一个系统架构灵感,你掏出手机打开白板工具——却发现界面错乱、操作迟滞,甚至无法加入团队协作会话。这种场景在远程办公日益普及的今天并不罕见。数字白板作为…

作者头像 李华
网站建设 2026/4/11 11:13:33

Excalidraw在敏捷开发中的应用:每日站会白板这样用

Excalidraw在敏捷开发中的应用:每日站会白板这样用 在一次跨时区的远程站会上,团队成员正试图通过文字描述一个复杂的架构问题。一个人说“服务A调用了B,但中间卡在网关层”,另一个人回应“是不是鉴权没过?”——来回几…

作者头像 李华
网站建设 2026/4/11 17:46:21

Excalidraw多人协作机制剖析:OT算法是如何工作的?

Excalidraw多人协作机制剖析:OT算法是如何工作的? 在远程办公成为常态的今天,团队成员可能身处不同时区,却需要在同一块“白板”上实时碰撞想法。无论是画一张系统架构图、设计一个用户流程,还是进行一场头脑风暴&…

作者头像 李华
网站建设 2026/4/11 12:46:36

Excalidraw与Miro、Whimsical的核心差异及选型建议

Excalidraw 与 Miro、Whimsical 的核心差异及选型建议 在今天的远程协作环境中,一张草图可能比十页文档更能快速传达一个系统的设计意图。尤其是在技术团队中,架构讨论、API 设计或流程梳理往往始于白板上的几笔涂鸦——而这些“涂鸦”如今已不再局限于物…

作者头像 李华