指標做函式引數交換主函式中的值理解

2021-10-10 03:41:25 字數 582 閱讀 4348

何為指標,乙個變數在記憶體中的位址稱為指標,指標本身(位址值)也是乙個變數,只要真正的明白這句話就能弄明白指標究竟應該如何實現通過函式傳遞形參指標改變主函式中實參的改變。

下面**要實現的是,通過swap函式交換兩個數值實現主函式兩個數值的交換

在swap_false函式中p1、p2本身就是兩個位址值,換句話說就是兩個傳入的引數,就相當於傳入a、b,因此對兩個變數在函式體內的操作對外部沒有任何影響。但是swap_true函式中通過解引用的方式改變了p1、p2指標所指向的值,已經不是單獨對位址的操作,因此該函式能夠改變主函式中a、b變數的交換。最主要的還是要理解指標本身(位址值)也是乙個變數。

函式指標 函式指標做函式引數

陣列型別如何定義 typedef int myarray 5 這是我定義的陣列型別,這個型別的名字是myarray,它的本質是乙個記憶體固定大小模板 myarray arr arr是乙個陣列 大小為5 型別的變數。可以這樣訪問arr 0 arr 1 arr 2 typedef int myp 5 定...

函式指標做函式引數

函式指標是指向函式的指標變數,即本質是乙個指標變數。int f int x 宣告乙個函式指標 f func 將func函式的首位址賦給指標f 指向函式的指標包含了函式的位址,可以通過它來呼叫函式。宣告格式如下 型別說明符 函式名 引數 其實這裡不能稱為函式名,應該叫做指標的變數名。這個特殊的指標指向...

函式指標做函式引數

define crt secure no warnings include include include int myadd int a,int b 子任務的實現者 int myadd2 int a,int b 子任務的實現者 int myadd3 int a,int b 子任務的實現者 int ...