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. 数据结构(链表、树)
相关推荐
tdtsmt7 小时前
穿戴硬件量产工艺实录:天地通电子智能手表主板 SMT 贴片案
c++
新时代牛马8 小时前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位
android·开发语言·python·kotlin
三8448 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker
IvanCodes8 小时前
Python 基础语法(七):推导式与常见遍历写法
开发语言·python
暮雨哀尘8 小时前
Java 基础练习(一):创建类并调用对象
java·开发语言
zhangzeyuaaa9 小时前
Python requests:raise_for_status() 与 4xx/5xx 异常层次详解
开发语言·python
泡海椒9 小时前
动态代理核心原理:JQuick-Java接口规则自动生成机制解析
java·开发语言·python
大江东去浪淘尽千古风流人物9 小时前
【UniSim-SLAM】前馈SLAM的双流架构:Sim(3)统一位姿图、与经典SLAM及DPVO的三范式对比
深度学习·计算机视觉·3d·交互·人体姿态估计·eccv·3d重建
shirsl9 小时前
算法 Day 2 滑动窗口 + 栈 / 单调栈
开发语言·python·算法
菜鸟~noob2339 小时前
【电子战】第08篇:多普勒测向的工程实现与优化【含matlab代码】
开发语言·matlab