在很多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.當在...