98高考 程式設計 - 高考

Table of Contents

[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處
出處:如題

二、假設一個整數佔用四個位元組(4bytes),考慮一個C程式語言的整數陣列(integer array)int A[4][8][16],此陣列的起始位址(starting address)為0X22F760,以十六進位(hexadecimal)寫出下列四個printf敘述句(statements)的輸出值(請寫出計算過程):(每小題5分共20分)
(一) printf(“%X\n”,&A[0][1][2]);
(二) printf(“%X\n”,&A[0][1][2]+1);
(三) printf(“%X\n”,&A[0][1]+2);
(四) printf(“%X\n”,&A[0]+3);

解答:
int A[4][8][16]
(一) printf(“%X\n”,&A[0][1][2]);
22F7A8=0x22F760+4*(0*8*16+1*16+2)
0x22F760+4*18
0x22F760+72 不會等於22F7A8???


(三) printf(“%X\n”,&A[0][1]+2);
22F820=22F760+4*(0*8*16+1*16+2*16)
22F760+4*48
22F760+192 不會等於22F820???

(四) printf(“%X\n”,&A[0]+3);
22FD60=22F760+4*3*8*16
22F760+1536 不會等於22FD60???

以上懇請高手看看,此題解答的正確性與否~謝謝

--

All Comments

Olive avatarOlive2013-06-11
答案都正確,另外這題以前也問過@0@...
Mary avatarMary2013-06-14
位置是16進位 你的位移不是16進位
Regina avatarRegina2013-06-17
把你算出來的答案轉16進位
Liam avatarLiam2013-06-21
還以為後面是他的答案...抱歉我眼殘...