[C/C++] 一個更好閱讀的指標寫法
自古以來,我們就常會遇到一個問題,無數的 * & -> 出現在程式碼之中,總覺得看了有點不太直覺,所以今天要來教大家讓程式碼的可讀性變得更好!
更好的指標宣告
一般來說,我們在學習 C 語言的時候,老師總是這麼教
int *pointer;
試想,若是程式碼多一點,我們就很可能沒辦法一眼看出他是指標,反而還比較像在宣告一個整數,所以我們可以改成這樣寫
int* pointer;
看吧!這不就一目了然啦!是不是指標一眼就看的出來!
什麼?擔心不能用?痾…我們來問一下 Compiler 不就好了?
#include <iostream> using namespace std; int main() { int aNumber = 10; int *pointer = &aNumber; cout << "aNumber = " << aNumber << '\n'; cout << "&aNumber = " << &aNumber << '\n'; cout << "pointer = " << pointer << '\n'; cout << "*pointer = " << *pointer << '\n'; return 0; }
▲ 原本標準的寫法
aNumber = 10 &aNumber = 0x28fef8 pointer = 0x28fef8 *pointer = 10
▲輸出
#include <iostream> using namespace std; int main() { int aNumber = 10; int* pointer = &aNumber; cout << "aNumber = " << aNumber << '\n'; cout << "&aNumber = " << &aNumber << '\n'; cout << "pointer = " << pointer << '\n'; cout << "*pointer = " << *pointer << '\n'; return 0; }
▲ 改過之後的結果
aNumber = 10 &aNumber = 0x28fef8 pointer = 0x28fef8 *pointer = 10
▲輸出
至於為什麼執行 2 次,印出來的地址都一樣,聽說有一種東西叫做 “虛擬記憶體” 裡面有一種東西較 “記憶體映射”,想知道的人可以自己去查。
是說寫這篇的最大原因其實是,小獅的指標又想跑回去老師那裡了,所以要趕快寫一篇文章來把它們抓回來(感覺好有畫面~)
若有幫助到大家,請給我一點回應喔!這會幫助我繼續寫作下去!
寫的淺顯易懂
也感謝你的閱讀喔!