二級指針又叫雙指針。C語言中不存在引用,所以當你試圖改變一個指針的值的時候必須使用二級指針。C++中可以使用引用類型來實現。
下面講解C中的二級指針的使用方法。
例如我們使用指針來交換兩個整型變量的值。
錯誤代碼如下:
一級指針
[cpp]輸出的結構如下:
結果分析:不論是數值還是指針,swap函數中的參數傳遞的是總是值,所以在上述函數中即使a和b的地址已參數傳遞給swap函數,而在函數內交換的是a和b的值(main函數中a的地址和b的地址),而交換完畢,函數相應的參數從棧中彈出,並不能返回給調用函數,所以該swap函數中的操作是徒勞。
所以,這是不妨使用二級指針
正確的代碼:
[cpp]輸出的結果如下:
結果分析:本實例中使用了二級指針,main()函數中的a和b的操作數的地址傳遞給swap()函數,swap()函數的功能是交換操作數a和b地址的地址的取值,通過指針的指針才能達到改變指針的值的目的,即是操作數a和b的地址交換,輸出a和b的值達到交換的目的。
總結:
1、當操作二維數組時傳遞參數
2、當想改變指針的值的時候
不妨考慮使用二維指針。