c語言共用體輸出問題

2021-12-26 02:12:38 字數 772 閱讀 6024

1樓:匿名使用者

這個是共用體的問題

由於共用體共用同一段起始記憶體的地址,所以後一次的資料寫入可能會覆蓋前一次的資料

然後lz這道題,如果系統將int做2直接處理(比如tc2)的話,結果是380039和9;如果是按4位元組處理的話,結果應該是39和9

下面針對lz的結果,講一下2位元組處理的情況第一個共用體成員是int的陣列,兩個元素,共4位元組第二個成員是long,4位元組

第三個成員是char陣列,4個元素,4位元組所以這個union變數共4位元組

s.a[0]=0x39;

s.a[1]=0x38;

導致變數s的記憶體儲存的16進位制資料(小尾儲存的話)高位到低位依次為為00 38 00 39

所以才會導致輸出380039和9

4位元組處理的話,同理

2樓:匿名使用者

#include

union

s;int main()

////

///聯合體又稱共用體,記憶體的最大空間是最大變數所佔的空間long 和int均佔四個位元組int a[2]佔8個位元組

//s.a[0]=0x39;///整個佔的空間應該是0x0039//s.a[1]=0x38;///整個佔的空間應該是0x0038//printf("%lx\n",s.

b);的時候是s.a[0]記憶體中的內容0x0039,因為是"%lx這種顯示方式所以為39

// printf("%c\n",s.c[0]);的時候是s.a[0]記憶體低地址一個位元組中的內容9 故顯示9

c語言中sqrt函式的輸出問題兩種輸出為什麼是

因為sqrt的返回值是double型別,你用 d格式符會出錯。應該寫printf lf n sqrt n c語言數學函式sqrt 輸出問題 因為sqrt 9 是double型資料,用 d輸出的時候,輸出的都是0,應該用 lf 輸出。include include int main 因為sqrt的原形...

c輸入輸出問題

int i 0 i int32.parse console.readline read 返回的是int型別 readline 返回的是string型別 和樓上的,你那個又裝箱又拆箱的,效率太低了。的跑不通 和的方法可以。只能這個方法。如果你嫌煩,可以寫成 i console.read 0x30 i ...

魔獸LR輸出問題求助,魔獸LR輸出問題 求助

首先雕文最好換成瞄準雕文 毒蛇釘刺雕文。因為毒蛇釘刺不僅延長持續時間,而且還提升奇美拉射擊的傷害 金色森林肩膀換成t6肩膀出4t6效果,這個效果沒有一件散件可以代替個人建議手動輸出,只需要把瞄準射擊,奇美拉射擊和穩固射擊都分別和殺戮命令 沉默射擊綁成巨集,戰鬥時候先來個毒蛇釘刺,然後奇美拉和瞄準cd...