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
全站熱搜