我有一個問題關於前和後的增量與邏輯運算符 如果我有這樣的代碼混合增量運營商與邏輯運算符
void main()
{int i = - 3 , j = 2 , k = 0 , m ;
m=++i||++j&&++k;
printf("%d %d %d %d",i,j,k,m);}
知道增量和減量運算符具有更高的優先級比& &和| | 所以他們會先執行然後& &高於
意味着-2 || 3 & & 1賦予值-2 3 1 1中的printf
但輸出試穿時,我得到VS2010是-2 2 0 1
有沒有人有任何解釋? Regards ,,
請注意,運算符優先級與執行順序不一定相同。除了優先級,這裏最重要的是評估_的順序,在'&&'和'||'運算符的特定情況下恰好是明確定義的。 – Lundin 2017-03-22 14:08:07