C++ 指標修改



在 C++ 程式設計中,指標是一個儲存另一個變數的記憶體地址的變數。指標不直接儲存資料值,而是儲存值的記憶體位置。

什麼是 C++ 中的指標修改?

修改 C++ 中的指標值是指更改指標指向的記憶體地址或更改指標指向的記憶體地址中儲存的值的過程。

修改指標的方法

首先宣告一個指標變數並對其進行初始化。要修改指標的值,請為其分配一個新地址。如果使用動態記憶體,請使用new分配新記憶體並將它的地址賦給指標。修改指標後,您可以對其進行解引用以訪問或修改新地址處的值。

如果您動態分配記憶體,請確保使用 delete 釋放它以防止記憶體洩漏。

指標修改示例

這是一個簡單的示例,說明了如何修改指標的值:

#include <iostream>
using namespace std;

int main() {
   int var1 = 10;
   int var2 = 20;

   int* ptr = &var1; // ptr points to var1
   cout << "Value pointed by ptr: " << *ptr << endl; 

   ptr = &var2; // Modify ptr to point to var2
   cout << "Value pointed by ptr after modification: " << *ptr << endl;

   // Dynamic memory allocation
   int* dynamicPtr = new int(30);
   ptr = dynamicPtr; // Modify ptr to point to dynamic memory
   cout << "Value pointed by ptr after dynamic allocation: " << *ptr << endl;

   // Clean up dynamic memory
   delete dynamicPtr; 

   return 0;
}

輸出

Value pointed by ptr: 10
Value pointed by ptr after modification: 20
Value pointed by ptr after dynamic allocation: 30

解釋

  • 首先,我們聲明瞭 (var1var2) 並用值 1020 初始化變數。
  • 然後宣告名為 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; 用於防止記憶體洩漏。
廣告