先週面接を受けましたが、面接担当者から演算子の優先順位の問題について尋ねられました。このプログラムのロジックを理解するのに誰か助けてください。私はUbuntu(Linux)に取り組んでいます
int main()
{
int var = 90;
if(var += var == ++var ==8)
printf("val of var is %d \n",var);
}
このプログラムの出力は 91 です。
ループ内の複数の == はどのように評価されますか (結合性は左から右へ)???
興味深いことに、コードを次のように微調整すると
int main()
{
int var = 90;
if(var += var == ++var)
printf("val of var is %d \n",var);
}
次に、出力は92になります。
この動作はコンパイラに依存するものですか?