# C語言題庫-060 下面的代碼輸出是什麼,爲什麼? ``` void foo(void) { unsigned int a = 6; int b = -20; (a+b> 6)? puts("> 6") : puts("<= 6"); } ``` 【參考答案】這個問題測試你是否懂得C 語言中的整數自動轉換原則, 我發現有些開發者懂得極少這些東西。不管如何,這無符號整型問題的答 案是輸出是“>6” 。原因是當表達式中存在有符號類型和無符號類型時所有 的數都自動轉換爲無符號類型。因此-20 變成了一個非常大的正整數,所 以該表達式計算出的結果大於6 。這一點對於應當頻繁用到無符號數據類 型的嵌入式系統來說是豐常重要的。如果你答錯了這個問題,你也就到了 得不到這份工作的邊緣。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up