程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 隱藏了兩年的語法錯誤

隱藏了兩年的語法錯誤

編輯:C++入門知識

與或優先級問題,看看各位大蝦有多少和我犯同樣錯誤的?

x = 1, y = 0, z = -1;
q = ++x || ++y && ++z;

q會等於0?還是1?

你認為呢?

 

看分析:

優先級      操作符 
1 () [] -> . 
  ::    
  ! ~ ++ -- 
2 - (unary) * (dereference) 
  & (address of) sizeof 
3 ->* .*   
4 * (multiply) / % 
5 + - 
6 << >> 
7 < <= > >= 
8 == != 
9 & (bitwise AND) 
10 ^ 
11 | 
12 && 
13 || 
14 ? :  
15 = += -= etc. 
16 , 

注意:由於||和&&都是從左向右執行,而&&優先級大於||,所以實際執行效果是q=(++x)||(++y && ++z);

所以q的結果是1。

我原先一直停留在&&和||的優先級相同,共同存在時都是自左向右執行,結果就成了0.

說了慚愧啊。。。


作者: windows_nt

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved