[問題] 一題c的考題,印出的結果是?

看板C_and_CPP作者 (chingfan)時間14年前 (2009/10/03 03:54), 編輯推噓2(209)
留言11則, 6人參與, 最新討論串1/1
Byte A[10]={1,2,3,4,5,6,7,8,9,10}; UINT16 *AA; AA=(UINT16 *)A; 結果AA[1]的值會是什麼 1.請問在c語言中有Byte這個資料型別嗎? 2. UINT16是一開始程式須先typedef unsigned short嗎? 3.AA[1]結果會是什麼 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.142.196

10/03 03:58, , 1F
這個跟 big/little endian 似乎會有關係...
10/03 03:58, 1F

10/03 08:01, , 2F
0000001000000001
10/03 08:01, 2F

10/03 08:02, , 3F
0000010000000011
10/03 08:02, 3F

10/03 08:02, , 4F
AA[2]以後類推...
10/03 08:02, 4F

10/03 09:31, , 5F
很久以前的compiler ?
10/03 09:31, 5F

10/03 11:12, , 6F
我覺得 Byte 跟 UINT16 都是自定義型別
10/03 11:12, 6F

10/03 11:13, , 7F
然後x86系列處理器會把0x12345678存成0x78 0x56 0x34 0x12
10/03 11:13, 7F

10/03 12:17, , 8F
BYTE:unsigned char,UINT16:unsigned short,AA[1]=0x0403
10/03 12:17, 8F

10/03 14:32, , 9F
看機器是Big endian/Little endian而定
10/03 14:32, 9F

10/03 14:34, , 10F
A存在Heap或Stack也會導致結果不同
10/03 14:34, 10F

10/03 14:45, , 11F
更正, 應該沒影響
10/03 14:45, 11F
文章代碼(AID): #1AnbfwaA (C_and_CPP)