鍍金池/ 問答/Java  C  C++/ 程序是如何得知每一個指針的類型信息的?

程序是如何得知每一個指針的類型信息的?

簡單例子如下:

int a = 1
int* p = &a
...
...
int c = *p

指針中只保留了地址信息,那么到最后一行時,程序看到*p時,能夠得知“從這個地方取一個int”,則肯定有某個地方記錄了“p指向一個int”,那么是什么地方在進(jìn)行記錄呢?

回答
編輯回答
舊螢火

p指向int的信息是給編譯器進(jìn)行靜態(tài)檢查用的,在編譯后的程序里是沒有記錄p指向的是一個int
圖片描述

如圖所示,我上面兩個函數(shù),雖然指針類型不一樣,但編譯結(jié)果是一樣的
https://godbolt.org/
你可以在這個網(wǎng)站里在線把C編譯成匯編

2018年8月30日 18:09