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. 数据结构(链表、树)
相关推荐
有点。2 分钟前
C++深度优先搜索(DFS)的概念(一)
开发语言·c++·深度优先
旖-旎5 分钟前
《LeetCode 978 最长湍流子数组 || LeetCode 139 单词拆分》
c++·算法·leetcode·动态规划
研來如此6 分钟前
8位图、24位图、32位图、48位图区别
图像处理·人工智能·计算机视觉
时间的拾荒人7 分钟前
C语言编译与链接:从源码到可执行程序的完整解析
c语言·开发语言
人道领域9 分钟前
【0-1的agent进阶篇】Prompt 与上下文工程
java·开发语言·prompt·mcp
aaPIXa62210 分钟前
C++大型项目模块化拆分实战记录
开发语言·c++
z落落13 分钟前
C# WinForm 线程池与事件等待+进度条暂停恢复实战案例
开发语言·c#
石山代码18 分钟前
C++23 新特性在 CLion 中的实战体验
开发语言·c++·c++23
浮江雾19 分钟前
Flutter第四节------核心概念学习笔记:从基础语法到异步编程
linux·服务器·开发语言·笔记·flutter·入门·基础
在线OJ的阿川29 分钟前
仿muduo库实现高并发服务器
linux·服务器·c++