首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言 getchar() 賦值與比較優先級:括號確保先賦值後判斷

     編輯:程式設計疑難解答

代碼

while ((ch = getchar()) != '\n') { ... }

為何需要括號

運算符優先級:!= (關係運算符) > = (賦值運算符)。

  • 無括號:ch = getchar() != '\n' → 先判斷 getchar() != '\n' (結果 0 或 1),再賦值給 ch,導致 ch 變為布爾值而非字符。
  • 有括號:(ch = getchar()) != '\n' → 先執行賦值,ch 得到字符,再比較是否為換行符。

等價寫法

ch = getchar();
while (ch != '\n') {
    // ...
    ch = getchar();
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved