例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...