#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;
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:pointerdemo3.cpp
功能:示範 C++ 程式
作者:張凱慶
時間:西元 2013 年 1 月 */此例利用反參考運算子將 a 重新設定為 55
*aPtr = 55;
編譯執行結果如下

參考不需要用到反參考運算子,只要改變參考指向的變數,原變數也會跟著改變,例如
#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;
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名: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...
沒有留言:
張貼留言