cpp指针

晨曦

指针是 C++ 中一种非常重要的概念,它可以让你直接操作内存。下面是指针的详细介绍和常见用法。

1. 指针的定义

指针是一个变量,其值为另一个变量的地址。通过指针,可以间接访问该变量。指针的声明语法如下:

类型 *指针名;

例如:

int *p; // p 是一个指向 int 类型的指针

2. 指针的初始化

指针必须被初始化后才能使用。可以通过取地址运算符 & 来获取一个变量的地址:

int a = 10;
int *p = &a; // p 指向 a 的地址

3. 解引用指针

使用解引用运算符 * 可以访问指针所指向的变量的值:

int value = *p; // value 现在是 10

4. 指针的算术运算

指针可以进行算术运算。例如,如果有一个指针指向一个数组的首元素,可以通过指针加法来访问数组的其他元素:

int arr[] = {1, 2, 3, 4, 5};
int *p = arr; // p 指向 arr 的首元素

// 访问数组元素
int first = *p; // 1
int second = *(p + 1); // 2

5. 指向指针的指针

指针还可以指向其他指针,形成指向指针的指针(double pointer):

int **pp = &p; // pp 是一个指向指针 p 的指针

6. 动态内存分配

使用指针可以动态分配内存,常用的有 newdelete

int *p = new int; // 动态分配一个 int
*p = 10; // 给它赋值

delete p; // 释放内存

对于数组,可以这样:

int *arr = new int[5]; // 动态分配一个 int 数组
delete[] arr; // 释放数组内存

7. 注意事项

  • 野指针:未初始化或已经被释放的指针称为野指针,使用野指针会导致未定义行为。
  • 内存泄漏:动态分配内存后要确保及时释放,避免内存泄漏。
  • 标题: cpp指针
  • 作者: 晨曦
  • 创建于 : 2024-10-31 21:13:03
  • 更新于 : 2024-11-06 14:42:15
  • 链接: https://blog.xuchengxi.tk/2024/10/31/c⁄c++/cpp指针/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。