c++ 指针的用法

a:普通变量,存的是值 10

  1. &a:取地址,得到 a 在内存中的位置

    2.p:指针变量,存的是 a 的地址

    3.*p:解引用,表示"取这个地址里的值",也就是 10

  2. &:取地址

  3. *:取值(解引用)例如:

cpp 复制代码
int a = 10;
int* p = &a;

二、指针的基本操作

1.访问和修改值

cpp 复制代码
int a = 5;
int* p = &a;

cout << *p;  // 输出 5

*p = 20;     // 修改 a 的值
cout << a;   // 输出 20
  1. 指针作为函数参数(非常重要)例如`
cpp 复制代码
void change(int* p) {
    *p = 100;
}

int main() {
    int a = 10;
    change(&a);
    cout << a; // 100
}
  1. 空指针(避免野指针)
cpp 复制代码
int* p = nullptr;

三、什么时候用指针?

当需要以下操作的时候需要用到指针

  1. 需要修改函数外变量
  2. 操作数组 / 字符串
  3. 动态内存管理
  4. 数据结构(链表、树)
相关推荐
磁爆步兵11 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm
2301_7779983412 小时前
Linux线程同步与互斥(三):信号量与环形队列实现生产者消费者模型
linux·c语言·c++
啦啦啦啦啦zzzz12 小时前
设计模式:单例模式和工厂模式
c++·单例模式·设计模式·工厂模式
Henry Zhu12312 小时前
C++ 动态多态详解
c++
此生决int12 小时前
深入理解C++系列(06)——模版初阶与STL
开发语言·c++
c2385612 小时前
《枚举算法 “翻译官”:用 enum class 给 “游游的礼盒” 算分》
c语言·c++·算法
swany12 小时前
同步数据中,只需要几秒钟 & milvus向量数据库不可用 dify1.16.1 升级后踩坑记录
开发语言·python·numpy
小杍随笔12 小时前
2025年Rust GUI框架实战万字避坑指南
开发语言·后端·rust
noipp12 小时前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu
geovindu12 小时前
CSharp: LogHelper
开发语言·后端·c#·.net