c++ 提供了兩種指標運算子,一種是取位址運算子 &,一種是間接定址運算子 *。
指標是乙個包含了另乙個變數位址的變數,可以把乙個包含了另乙個變數位址的變數說成是"指向"另乙個變數。變數可以是任意的資料型別,包括物件、結構或者指標。
取位址運算子 &
& 是一元運算子,返回運算元的記憶體位址。例如,如果 var 是乙個整型變數,則 &var 是它的位址。該運算子與其他一元運算子具有相同的優先順序,在運算時它是從右向左順序進行的。
您可以把 & 運算子讀作"取位址運算子",這意味著,&var讀作"var 的位址"。
間接定址運算子 *
第二個運算子是間接定址運算子 *,它是 & 運算子的補充。* 是一元運算子,返回運算元所指定位址的變數的值。
請看下面的例項,理解這兩種運算子的用法。
#include using namespace std;
int main ()
產生的結果為:
value of var :3000
value of ptr :0xbff64494
value of val :3000
指向指標的指標是一種多級間接定址的形式,或者說是乙個指標鏈。通常,乙個指標包含乙個變數的位址。當我們定義乙個指向指標的指標時,第乙個指標包含了第二個指標的位址,第二個指標指向包含實際值的位置。
#include using namespace std;
int main ()
執行例項可以得到的結果為:
var 值為 :3000
*ptr 值為:3000
**pptr 值為:3000
有時候再對程式進行更進一步模組化時,可能有將函式作為引數的情況。即把邏輯框架抽象出來,而把判斷的標準(或其他操作)變成乙個函式指標,也就是用乙個單獨的函式來實現某個功能。如下面**所示:
#include using namespace std;
int addition(int x, int y)
int subtraction(int x, int y)
int operation(int x, int y, int (*function)(int, int))
int main()
在這裡我們可以將(*function)視為函式的指標,直接將函式名稱傳進去。
c++部分借鑑
指標將函式作為引數參考:
C語言 重難點知識
define用法 例子 include define f x x x int main void 以下程式的輸出結果是 36。例如 typedef void system irq handler t unsigned int gicciar,void param 1 在這裡我們宣告了一種新的型別 s...
C 重點知識總結 陣列
記憶體分割槽 堆 手動分配釋放,malloc,new來分配,free,delete來釋放 棧 編譯器自動分配釋放,存放函式的引數值 區域性變數的值等 全域性 靜態 儲存區 存放全域性變數和靜態變數,包括data段 全域性初始化區,存放初始化的全部變數和靜態變數 與bss段 全域性未初始化區,在程式執...
前端重點知識總結
文件頭標籤 其他常用重點標籤 imga table li顏色 css定位 position 思維 檔格式 常用宣告 html5 html 4.01 xhtml 1.0 標籤含義 title 元素可定義文件的標題。lang 規定元素中內容的語言 head 標籤用於定義文件的頭部,它是所有頭部元素的容器...