重新打開 請投票重新打開this.It不是同一個問題,它是下面標記。 注意在這個問題中()括號也被使用過。所以使用()括號應該有一個確定的行爲。運算符優先級在C相同的邏輯不同的輸出
這裏有兩個方案
計劃1
#include<stdio.h>
int main()
{
int b=5;
int c= (b++)+(++b);
printf("%d",c);
}
輸出
12
計劃2
#include<stdio.h>
int main()
{
int b=5;
int c= (b++) + (++b) + (++b) + (++b);
printf("%d",c);
}
輸出
27
我把程序2從here鏈路上的邏輯似乎是正確的,因爲對於相同的邏輯輸出 程序1的是12. 這似乎是正確的。
但是,在program2輸出中的相同解釋是27而不是29. 那麼爲什麼這種差異到來,這是我想了解的。 該鏈接的解釋有什麼錯誤?
爲什麼人們如此固定,試圖使未定義的行爲發揮作用? – slezica
是的,今天真是無聊的一天.... –
使用圓括號並沒有什麼不同。這個問題是重複的,它是封閉的。請不要重新打開。 –