Q1:

a = 14745600 (0x00C10000)

a & (0x00FF0000) >> 16 = ?

 

答案是: a & (0x00FF0000) = a

=> a >> 16 = 0x000000C1 = 225

 

上述答案是錯的...

一般的觀念是左結合,就是左邊先做,

但是上面因為>>優先權比&高,

所以正確答案為

 

(0x00FF0000) >> 16 = 0x000000FF

a & 0x000000FF = 0

 

Q2:

為什麼宣告的陣列(array)太大程式就會當機?

答案:

函式中的變數都是放在記憶體的stack區段,區段容量通常都不大,如果宣告了一個太大的陣列就會把stack都佔滿,很有可能一執行就當機,此時就需要把陣列由主副程式中移到外面變成全域的陣列

參考答案來源:

http://home.educities.edu.tw/mariorpg/C++/c114.html





arrow
arrow
    全站熱搜
    創作者介紹
    創作者 GiMi 的頭像
    GiMi

    I'm GiMi

    GiMi 發表在 痞客邦 留言(0) 人氣()