觀察 聯合體成員之間的相互影響
#include
void
main()
d=;printf
("d.ch=%c d.a=%x d.l=%x\n"
,d.ch,d.a,d.l)
; d.a++
;printf
("d.ch=%c d.a=%x d.l=%x"
,d.ch,d.a,d.l)
;}
執行結果:
0x41 位址2000 (位址2000存放的值為0x41,佔乙個位元組)
0x12 位址2001
0xf1 位址2002
0xff 位址2003
所以 d.ch 就是 從第乙個位址往後,佔乙個位元組 ,是字元型,所以 輸出為 a
d.a 就是從第乙個位址往後,佔兩個位元組,是短整型,所以輸出十六進製制 1241
d.l 就是從第乙個位址往後 ,佔四個位元組,是長整型,所以輸出十六進製制 為 fff11241
d.a++,就是將十六進製制的1241+1,最後程式設計 1242,其他兩個位址,就沒變化
0x42 位址2000
0412 位址2001
0xf1 位址2002
0xff 位址2003
所以 得到輸出結果
總結 :
f f f 1 1 2 4 1
高位 地位
高位址 低位址
訪問時,從低位址開始訪問
各種布局之間的相互影響
1 在運用布局時,有時會用到多種不同的布局方式,但是對這些個布局方式之間是否會相互影響以及會怎樣進行相互影響,在這裡需要進行一下稍微的總結 2 後來又想了一下,這個需求好像是因為,在使用了乙個大的布局方式之後,我們需要對其中一些子元素的位置進行一些微調整,而不改變原有的塊布局 這就需要考慮到以下幾種...
聯合體 位域結構體 聯合體的妙用
在c語言中,變數的定義是分配儲存空間的過程。一般的,每個變數都具有其獨有的儲存空間,那麼可不可以在同乙個記憶體空間中儲存不同的資料型別 不是同事儲存 呢?答案是可以的,使用聯合體就可以達到這樣的目的。聯合體也叫共用體,在c語言中定義聯合體的關鍵字是union。定義乙個聯合型別的一般形式為 union...
聯合體union的用法
在c c 程式的編寫中,當多個基本資料型別或復合資料結構要占用同一片記憶體時,我們要使用聯合體 當多種型別,多個物件,多個事物只取其一時 我們姑且通俗地稱其為 n 選1 我們也 可以使用聯合體來發揮其長處。首先看一段 union myun u int k a int main union型別是共享記...