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. 数据结构(链表、树)
相关推荐
mounter6253 分钟前
GCCRS 突破与 Rust 入核:Linux 工具链的重大变革
linux·开发语言·rust·linux kernel·kernel
Buke..5 分钟前
【APP 逆向】哔哩哔哩 sign 参数逆向(上):Frida 反调试绕过与 unidbg 调用
java·开发语言·爬虫·python·安卓
abcefg_h22 分钟前
MCP 实战指南:如何在项目中使用 Model Context Protocol 及其通信原理
开发语言·后端·golang·mcp
何以解忧,唯有..1 小时前
Python 线程编程:从入门到实战
开发语言·python
_wxd6661 小时前
STL-stack与queue与priority_queue(容器适配器)
c++
zh路西法2 小时前
【玩转VLA具身智能机械臂】(二):MoveIt2 运动规划——架构、配置与 C++ 上手
c++·机械臂·路径规划·vla·planner·moveit2
SomeB1oody2 小时前
【RustyML入门】7.2. 深入模型持久化
开发语言·后端·机器学习·rust·教程
yaoxin5211232 小时前
502. Java 反射 - 编写 MessageInterceptor 类
java·开发语言
wuyk5552 小时前
Python零基础入门第五章:元组Tuple(不可变容器详解、列表与元组区别)
开发语言·python