[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 次,印出來的地址都一樣,聽說有一種東西叫做 “虛擬記憶體” 裡面有一種東西較 “記憶體映射”,想知道的人可以自己去查。

 

是說寫這篇的最大原因其實是,小獅的指標又想跑回去老師那裡了,所以要趕快寫一篇文章來把它們抓回來(感覺好有畫面~)
若有幫助到大家,請給我一點回應喔!這會幫助我繼續寫作下去!

2 responses to “[C/C++] 一個更好閱讀的指標寫法

johnson wang 發表迴響取消回覆