⓪著作 :蕭沖


資料的變數是為了方便找資料(memory address 的alias)。
型別則是為了資料「取出後」該用什麼方式處理與呈現。

我們都知道在電腦世界裡,所有資料的最後結構都是010101…二進位。型別則讓我們可以分門別類的把010101的資料做不同的詮釋以呈現我們人類所可以理解的資訊。

Pointer是為了存取資料的方式不同而生,它該是屬於定址問題,也就是說它和變數是該是「同一夥」的!

Type Variable 我的說詞是: 用「直接定址法存取」,資料型別是Type,稱直接變數。
Type *Variable 用「間接定址法存取」,資料型別是Type,稱間接變數。

關於定址法,請參照組合語言(Assembly Language)。

最後被存取的資料才是我們重視的,所以最後被存取的資料型別才是我們關心的,而Pointer雖然也是資料的一部份,但放的都是位址資料,這些位址資料只是為了靈活的操作我們在意的最終資料。

我們在意的資料型別是什麼? 就是 int, char, float, double, stuct, class.....等對人有價的資料。我想,單純的pointer type對我們來說只是存取資料的過程用,並非我們最後想看的吧!
創作者介紹
創作者 aftcast 的頭像
aftcast

蕭沖的書房

aftcast 發表在 痞客邦 留言(1) 人氣()


留言列表 (1)

發表留言
  • hi
  • 還有參考

    參考運作和指標一樣, 是一體兩面.

    ex:
    char a[10]= "123456789"; //"123456789" 的型態為 char const [10], 並進行每個元素的賦值動作
    char (&b)[10] = a; // a 的 型態為 char[10], 而 &a -> char(*)[10], 再 *&a -> char[10]

    char (&b)[10] = a 的虛擬碼如下:
    char (*temp)[10]= &a;
    *temp => b

    故以後用 b 就好像是在用 *temp, 只是temp 內含值不能被指派, 因為編譯器每次使用 b 都是在 *temp 的方式存取.