c++++中運算符主要有三種常見用途。第一指針聲明,如int p表示p是指向int的指針變量;第二解引用操作,通過ptr可訪問或修改指針指向的內容;第三乘法運算,用于數值類型的相乘如53結果為15。此外還有成員指針訪問、智能指針訪問以及運算符重載等較少用法。理解不同上下文中的作用是正確使用的關鍵。
c++中的*運算符用途挺多的,主要取決于上下文。最常見的幾種用法包括指針聲明、解引用操作以及乘法運算。下面我們就來分別看看這些常見用法和使用方法。
指針聲明時的 *
這是最基礎也是最容易混淆的一種用法。在變量聲明中,* 用來表示該變量是一個指針類型。
int* p; // p 是一個指向 int 類型的指針 char* c; // c 是一個指向 char 類型的指針
這里需要注意的是,雖然寫成 int* a, b; 看起來像是兩個指針,但實際上只有 a 是指針,b 是普通的 int 變量。所以為了清晰,有些人會寫成 int *a, *b;,但這也不是強制要求。
立即學習“C++免費學習筆記(深入)”;
解引用操作:訪問指針指向的數據
當已經有一個指針變量時,使用 * 來獲取它指向的內存中的值,這叫做“解引用”。
int value = 10; int* ptr = &value; std::cout << *ptr; // 輸出 10,即 ptr 所指向的內容
也可以通過 * 修改指針指向的內容:
*ptr = 20; // 把 value 的值改為 20
這種用法常用于動態內存管理、函數參數傳遞(比如修改外部變量)等場景。
乘法運算中的 *
除了和指針有關的用法,* 也作為算術運算符表示乘法。
int a = 5 * 3; // 結果是 15 double result = 2.5 * 4.0; // 結果是 10.0
這個就比較直觀了,只要是數值類型都可以做乘法運算。
其他一些不太常見的用法
- 成員指針訪問:在類對象中,如果有個指向成員變量的指針,可以用 .* 或 ->* 來訪問,不過這類用法相對較少。
- 智能指針配合使用:像 std::shared_ptr 或 std::unique_ptr 這樣的智能指針,也可以用 * 來訪問內部對象。
std::shared_ptr<int> sptr = std::make_shared<int>(100); std::cout << *sptr; // 輸出 100
- 運算符重載:在自定義類型中,可以重載 * 運算符,比如實現向量相乘或矩陣乘法。
基本上就這些。不同語境下 * 的作用不一樣,理解清楚當前是在做指針操作還是數學運算,是避免出錯的關鍵。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END