1樓:匿名使用者
共用變數體a的大小是4位元組,當成浮點型時,使用全部4位元組;當成長整型時也使用全部4位元組;只有當成字元型時,只使用1位元組(最低位的1位元組)。執行時記憶體示意如下圖。
1.執行a.x=3.1416;後,共用變數體a的十進位制值是1078530041,當成浮點值則為3.1416;
2.執行a.w=123456;後,全部4位元組被賦值,共用變數體a的十進位制值是123456,當成整型值當然還是123456;
3.執行a.c='x';後,只有最低位1位元組被賦值(其他三位不變),共用變數體a(全部4位元組)的十進位制值是123480(*如何計算?
),當成字元型(只用最低位1位元組)基值為'x'(ascii碼的十進位制值88)。
*如何計算:
1)執行a.w=123456;後,假設將最低的1位元組置為0(相當於右移8位——除以2^8,再左移8位——乘以2^8, 2^8=256),則全部4位元組的值為 int(123456/256)*256=123392;
2)執行a.c='x';後,最低的1位元組的十進位制值為88,則全部4位元組的值為123392+88=123480
2樓:笑年
因為是共用體變數
所以共用體裡的變數x,w,c共用同一位址
a.w=123456把a.x=3.
1416覆蓋了同理a.c='x'把a.w=123456覆蓋了所以共用變數體a的十進位制值是字元x的ascii碼值88 (這個是大寫的x的ascii碼)
C語言問題,c語言問題
int a 4 void main int a 2 這種局 bai部變數,會du隱藏掉上一級 定義zhi的同名變數,下面dao 也是一樣回 中有效。所以上面的復合語句中,會輸出0,下面呼叫sub1時,實際上傳入的是main中的int a 2 又有a a 1,所以會輸出1,下面也是一樣的,main中的...
C語言問題,c語言問題?
include include include typedef struct nodelinknode,link void main link pa s int da int flag 0 pa head 讓pa指向頭結點 dowhile flag 0 link pb head pb pb next...
C語言問題,C語言問題,求助
while語句的執行順序 1.判斷x的值 非0為真,0為假 2.執行 3.執行 裡面的 這裡是空,所以沒任何動作。所以會一直迴圈到x 0,判定為假,迴圈終止。接著執行減減,最後列印結果為 1 c語言問題,求助 這題是迷惑人用的.因為迴圈內部沒有break,所以for會一直執行下去,直到a 11,這時...