指標型別強制轉換

2021-06-29 04:36:28 字數 346 閱讀 1640

問題為下:

#include

void main()//輸出為啥不是1呢

這個時候,我們可以看到函式式裡面有格式的轉換,如果格式轉換時存在除void格式外,還有兩個及兩個以上的格式的轉換,則這時候的指標所指的variable所佔的記憶體會產生變化,從而會使格式發生相應的變化

對於本題:

當你強行將int指標變為float指標後 去到的資料實際已經超出了int定義的記憶體空間範圍

例如int 佔據4個位元組 float 佔據8個位元組 開始k=1 存放到了4個位元組中

當你將指標轉化為float後他就讀出1的四個位元組及其後面的額外四個位元組 所以肯定不是1了,至於會是什麼 應該是隨機的 

指標強制型別轉換

當我們初始化乙個指標或給乙個指標賦值時,賦值號的左邊是乙個指標,賦值號的右邊是乙個指標表示式。在我們前面所舉的例子中,絕大多數情況下,指標的型別和指標表示式的型別是一樣的,指標所指向的型別和指標表示式所指向的型別是一樣的。例十四 1。float f 12.3 2。float fptr f 3。int...

指標變數 指標強制型別轉換

一 什麼是指標變數?指標變數,實質上是乙個變數,只是它是存放位址的變數,指標的型別代表的是它所指向的變數的型別,因此就有了指向整形 字元型 浮點型等其他型別的指標。但實際上所有型別的指標變數存放的都是int型的位址 16位的編譯系統,int是2位元組 32的編譯系統,int是4位元組 本質上,不同型...

函式指標的強制型別轉換

先給出結論 函式指標是可以通過強制型別轉換而指向具有不同函式簽名的函式的,但是,轉換後,該函式指標沒辦法正確呼叫所指向的函式 不能給函式傳遞引數。下文給出得出這個結論的小故事。前幾天的任務要求寫乙個logger類,該類對外提供一些靜態的方法,但不生成物件。該類的主要作用是用來輸出訊息,不同的是可以由...