有關c語言 為什麼得

2022-12-08 05:50:16 字數 674 閱讀 3139

1樓:匿名使用者

union中,所有元素都從該union的開頭分配,就是說儲存是覆蓋的。

以你的s為例,s總的長度是最長的元素int i的長度,對32位編譯器來說,s佔4個位元組,從s的第0位元組到第3位元組;則佔s的第0位元組處的1個位元組。

即,與的最低的8位那個位元組是存放在同一個記憶體位元組中的,因此改變s.

a,也會導致發生變化。

給賦值512後,s的0-3位元組分別為:0x00,0x02,0x00,0x00 (intel格式是低位在前)

給賦值2後,改變了s的第0位元組,s的0-3位元組分別為:0x02,0x02,0x00,0x00

這樣,再輸出時,輸出的就是0x00000202,即十進位制514了。

2樓:匿名使用者

union的兩個元素i,a用的是同一塊記憶體。而i佔兩個位元組,a佔一個位元組;

00000010 00000010 即:514.

所以輸出為:514

3樓:網友

首先int和char是一家,都是整型,char儲存的是asc嘛是整形。因為asc碼都是正數,所以沒必要和int佔一樣的位元組,char和short是一樣的。512的二進位制是10 0000 0000。

2的二進位制是10。此時10儲存在低段位。s就變成了10 0000 0010,就是514

為什麼c語言總是顯示錯誤警告,為什麼c語言總是顯示一個錯誤0個警告?

這個錯誤是你沒有正確配置vc6的編譯工具路徑,或者你的vc6缺少聯結器程式導致的。最簡單的解決辦法是不要使用vc6.0,這是一個20年前的ide,已經嚴重過時,不相容當前的c c 標準,也不相容windows 7以上的作業系統。換用code blocks或visual studio等現代ide。c語...

c語言為什麼會有指標?c語言為什麼要有指標呢?

指標是c中的精髓,如果沒有,應該說就是一種很平庸的語言,從本質上說,指標體現了von neumann體系結構計算機也就是當今計算機的特徵,記憶體資料按照當前的解釋決定其意義,其指標的運算更是以機器實現的方式展現出來。具體的主要原因大致如下 1 函式的引數傳遞 c語言只有傳值這樣一種方式,在函式體內不...

有關c語言的書,學習C語言 必看的書籍

1.業界公認的完整涵蓋c 標準的權威著作只有兩部,其中一部就是本書!它是業界內久負盛名 無可替代的c 經典著作,它的原版銷量超過450000冊,它教授最新的程式設計理念與實踐,它是所有c 程式設計師不可或缺的參考書!但是這本書不適合初學者,學完上面那本可以再學這本除了語言還要有其他方面的知識 1 資...