1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <iostream> int main( void ) { int a = 22; std::cout << "a: " << a << std::endl; int *aPtr = &a; *aPtr = 55; std::cout << "a: " << a << std::endl; return 0; } /* 《程式語言教學誌》的範例程式 檔名:pointerdemo3.cpp 功能:示範 C++ 程式 作者:張凱慶 時間:西元 2013 年 1 月 */ |
此例利用反參考運算子將 a 重新設定為 55
9 | *aPtr = 55; |
編譯執行結果如下

參考不需要用到反參考運算子,只要改變參考指向的變數,原變數也會跟著改變,例如
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <iostream> int main( void ) { int a = 22; int b = 33; int *aPtr = &a; int *bPtr = &b; aPtr = bPtr; std::cout << "*aPtr: " << *aPtr << std::endl; std::cout << "*bPtr: " << *bPtr << std::endl; std::cout << "a: " << a << std::endl; std::cout << "b: " << b << std::endl; std::cout << std::endl; int &aRef = a; int &bRef = b; aRef = bRef; std::cout << "aRef: " << aRef << std::endl; std::cout << "bRef: " << bRef << std::endl; std::cout << "a: " << a << std::endl; std::cout << "b: " << b << std::endl; std::cout << std::endl; return 0; } /* 《程式語言教學誌》的範例程式 檔名:pointerdemo4.cpp 功能:示範 C++ 程式 作者:張凱慶 時間:西元 2013 年 1 月 */ |
編譯執行結果如下

此例可見出當 bPtr 指派給 aPtr 後, a 與 b 的值都沒有改變,可是當 bRef 指派給 aRef ,此時 a 就等於 b 的值了。
中英文術語對照 | |
---|---|
指標 | pointer |
變數 | variable |
參考 | reference |
別名 | alias |
反參考運算子 | dereference operator |
您可以繼續參考
複合資料型態
相關目錄
回 C++ 快速導覽
回 C++ 教材
回首頁
參考資料
C++ reference
cplusplus.com
Cprogramming.com C++ Tutorial
C++ Primer, Fourth Edition, Stanley B. Lippman...
沒有留言:
張貼留言