c型別轉換

2021-08-25 01:15:49 字數 1098 閱讀 8332

在很多c程式鐘,都看到這樣的用法,如

a 和 b是2個結構

func(a *p)

1、在進行指標型別轉化時,需要注意什麼?

2、結構a 和 結構b 應該有什麼關係麼(父類?子類?)?

ps:我倒是知道,經常將入參的指標型別生命為 (void *),然後在函式內部,再將其轉換為其他型別的指標。

甚麼父類子類的,又不是c++就像一本書,你覺得非常好,可是他覺得很差,書,還是書,沒有變,變的是你們兩個對書的想法(也就是對這斷記憶體中資料的解析方式不同而已)

哦,的確,這裡面不涉及到什麼父類、子類的問題,我也只是隨便聯想了一下。

指標所表達的就是記憶體中的乙個位址,如果是乙個相對小的 被 轉換成 乙個相對大 的,

那麼,會出問題麼?

會有越界問題麼?

我的提問可能不是很清楚,希望可以得到高手的點撥

如果sizeof(a)> =sizeof(b)沒有越界問題.否則會引起越界問題的.

這個看使用者是如何做了.

記憶體象一塊面,資料型別象乙個模子,同樣一塊面,使用不同的模子切,會展現不同的形狀,需要考慮的是,切面時一定要切在系統允許你切的面上,

1、在進行指標型別轉化時,需要注意什麼?

你要清楚這兩個型別,清楚為什麼要轉

2、結構a 和 結構b 應該有什麼關係麼(父類?子類?)?

a b 起碼大小以至,一般要求資料格式一致

給你看個例子就完了:

structarpcom ;

struct arpcom arp_com;

struct arpcom *p_arp_com = &arp_com;

struct ifnet *ifp = &(arp_com.ac_if);

那麼p_arp_com是乙個指向arpcom結構的指標,ifp是指向arpcom結構中的ifnet結構的指標。

這兩個指標的值是一樣的。

這個時候就可以這樣用:

struct arpcom arp_com;

struct arpcom *p_arp_com = &arp_com;

struct ifnet *ifp;..

.ifp = (struct ifnet *)p_arp_com;

mysql型別轉換c 型別轉換 C 型別轉換

一 簡介 型別轉換 把資料從一種型別轉換另一種型別 我們要求等號兩邊參與運算子必須型別一致,如果不一致,滿足下列條件會發生自動型別轉換或者隱式型別轉換。1.兩種型別相容 例如 int和double 相容 都是數字型別 2.目標型別大於源型別 double int 顯示型別轉換 1.兩種型別相相容 i...

C 型別轉換

在程式中,進行型別轉換是常見的事。那麼在 c 中支援以前語言的型別轉換方法,即用型別名進行強行轉換,例如 object objtest new newtype newtype newvalue newtype objtest 但是這樣轉換,有個嚴重的問題,就是在把 objtest 強轉換成 newt...

C 型別轉換

型別轉換是將一種型別的值對映為另一種型別的值。型別轉換實際上包含有自動隱含和強制的兩種。型別的自動隱式轉換 c 語言編譯系統提供的內部資料型別的自動隱式轉換規則如下 1.程式在執行算術運算時,低型別可以轉換為高型別。2.在賦值表示式中,右邊表示式的值自動隱式轉換為左邊變數的型別,並賦值給它。3.當在...