C++ 修改指针
在 C++ 编程中,指针 是一个存储另一个变量内存地址的变量。指针不是直接保存数据值,而是保存该值的内存位置。
C++ 中什么是修改指针?
在 C++ 中,修改指针值是指更改内存地址或更改指针指向的内存地址中存储的值的过程。
修改指针的方法
首先声明一个指针变量并初始化它。要修改指针的值,请为其分配一个新的地址。如果使用动态内存,请使用 new 分配新的内存,并将其地址赋给指针。修改指针后,您可以取消引用它以访问或修改新地址的值。
如果动态分配内存,请确保使用 delete 释放它,以防止内存泄漏。
修改指针的示例
这是一个简单示例,说明如何修改指针值 -
#include <iostream> using namespace std; int main() { int var1 = 10; int var2 = 20; int* ptr = &var1; // ptr 指向 var1 cout << "ptr 指向的值:" << *ptr << endl; ptr = &var2; // 修改 ptr 使其指向 var2 cout << "修改后 ptr 指向的值:" << *ptr << endl; // 动态内存分配 int* dynamicPtr = new int(30); ptr = dynamicPtr; // 修改 ptr 使其指向动态内存 cout << "动态分配后 ptr 指向的值:" << *ptr << endl; // 清理动态内存 delete dynamicPtr; return 0; }
输出
ptr 指向的值:10 修改后 ptr 指向的值:20 动态分配后 ptr 指向的值:30
解释
- 首先,我们声明了var1和var2,并用值10和20初始化了变量。
- 然后声明了名为ptr的指针,该指针使用取址运算符(&)保存了整数var1的地址。
- *ptr使用解引用运算符(*)访问存储在ptr地址上的值。
- ptr = &var2; 指针ptr被修改为指向var2。现在,当解除引用时,它将访问 var2 的值,即 20,因此会打印 20。
- 现在进行动态内存分配,int* dynamicPtr = new int(30); 使用 new 动态分配内存并初始化为 30,该内存的地址存储在指针 dynamicPtr 中。
- ptr = dynamicPtr; 其中,ptr 被修改为指向动态分配的内存 (dynamicPtr)。当解除引用时,它将打印 30。
- delete dynamicPtr; 这用于防止内存泄漏。