C語言基礎
uint8_t x = 250;
for (int i = 0; i < 10; i++)
x++;
printf("%d\n", x);uint8_t 是8位元的無號整數型別。執行上方讓 x 遞增10次的程式碼時的輸出,下列何者正確?
- A4
- B255
- C260
查看答案與解析
正確答案:A. 4
uint8_t 能表示的範圍是0~255。標準規定放不進無號整數型別的值,會成為除以 2⁸ = 256 的餘數,因此從250開始每次加1,255的下一個會回到0。加10次之後,結果是 250 + 10 = 260 除以256的餘數4。相對地,有號整數型別運算的溢位是未定義行為。
- A. 正確。是260除以256的餘數4。
- B. 這是認為會停在最大值255(飽和)時的值。無號整數型別會回到0的一側。
- C. 這是不考慮溢位、把250加上10的值。uint8_t 放不進256以上的值。