指向不同型別的指標的差異不體現在指標的表示方法的不同而是在於它所指向的物件的型別的不同,這種不同會告訴編譯器如何解釋某個特定位址中的記憶體內容及其大小。
例如乙個指向位址1000的整數指標,在32位機器上,將涵蓋的位址空間為1000-1003。
對於乙個指向位址1000而型別為void*的指標,我們無法知道它涵蓋的位址空間。所以,乙個型別為void*的指標只能夠含有乙個位址,但是不能夠通過它操作所指的object。
所以轉型(cast)其實是一種編譯器指令。大部分情況下它並不改變乙個指標所含的真正位址,它只影響「被指出之記憶體的大小和其內容」的解釋方式。
來自《深入探索c++物件模型》第一章。
指標的型別
c語言中的指標型別用於告訴指標,其所指向的位址存放什麼資料型別,而指標本身占用8個位元組 64位編譯器 的大小跟型別無關。但對指標進行輸入 輸出操作時,指標的型別卻至關重要。例如輸出時,如果指標定義為char型別,則指標會從所指向的位址至記憶體高位尋找1byte 64位編譯器 的內容輸出。如果定義為...
this指標的型別
通常情況下,當物件是非const 常量時,this指標的型別是 myclass const,也就是指標常量,不能改變指標的指向 當物件是const 常量時,this 指標的型別是 const myclass const 常量成員函式希望接受的this 指正的型別就是 const myclass co...
Int型別轉換的幾種方式差異
1 int 是一種型別轉換 當我們觟nt型別到long,float,double,decimal型別,可以使用隱式轉換,但是當我們從long型別到int型別就需要使用顯式轉換,否則會產生編譯錯誤。2 int.parse 是一種類容轉換 表示將數字內容的字串轉為int型別。如果字串為空,則丟擲argu...