指標小筆記

2021-07-03 17:03:36 字數 1006 閱讀 2056

例1:

void func(char *ptr)

int main(int argc, char *argv)

(1)"hello","world"都在常量區,

假設"hello"的位址為0x0040a064,"world"的位址為0x0040a06a

(2)main函式中,指標str指向位址0x0040a064,

呼叫函式func,將這個位址作為引數傳進去

(3)func函式中,指標ptr也指向位址0x0040a064,

在函式中改變了指標的值,讓其指向了位址0x0040a06a

(4)func函式結束,區域性變數 指標ptr被銷毀

(5)回到main函式中,指標str依然指向位址0x0040a064,

輸出的還是"hello"

例2:

void func(char **ptr)

int main(int argc, char *argv)

(1)"hello","world"都在常量區,

假設"hello"的位址為0x0040a064,"world"的位址為0x0040a06a

(2)main函式中,指標str指向位址0x0040a064,

(3)func函式中,指標ptr指向位址0x0056ff38,

*ptr還是乙個指標,*ptr=0x0040a064,

函式內部改變了*ptr的值,*ptr=0x0040a06a,即改變了位址0x0056ff38中的值,現在記憶體單元0x0056ff38中存放的是0x0040a06a

(4)func函式結束,區域性變數被銷毀

(5)由於在func函式中改變了記憶體單元0x0056ff38中的值,即str現在指向位址0x0040a06a,也就是"world"所在位址,

此時的輸出為"world"

小知識 指標

定義乙個指標 變數型別 變數名 int p 指標變數只能用來儲存位址!int p int a 90 p a p指向了a p 10 p指向了a位址對應的儲存空間!例 從main函式裡改變乙個變數的值!includevoid change int p main int i 20 change i pri...

指標小知識

1.帶有 的變數型別的標準寫法,變數型別 變數名。2.任何型別都可以帶上 加上 以後是新的型別。3.可以是任意多個。4.不管原來什麼型別,只要帶 不管幾個 就是指標,通用占用4個位元組。5.指標賦值必須前後一樣,完整寫法 int x int 6。6.帶 型別的變數可以加 減乙個整數,但是不能乘或者除...

函式指標小例

使用函式指標可以靈活呼叫不同的函式。使用函式指標必須完成以下步驟 1.獲取函式的位址 2.宣告乙個函式指標 3.使用函式指標呼叫函式 例 include stdafx.h int estimate1 int x,int y int estimate2 int x,int y int callesti...