したがって、三項演算子の演算子の優先順位は、私にC
は本当に奇妙に思えます。適例:
#include <stdio.h>
int main ()
{
int i=5;
int j=6;
int k=7;
printf("A: %d\n", i+j+(k!=7)?1:11); //prints 1
printf("B: %d\n", i+j+((k!=7)?1:11)); //prints 22
return 0;
}
これは、ここでの質問に似ているようです
。C++の3項条件付きおよび代入演算子の優先順位3項演算子の
評価順序
明確にするために、私の元の投稿のコメントが示しているように、括弧がそれを機能させることを理解しています...
最初のステートメントがコンパイラーごとに有効であるようにフォーマットされているように見えるのに、なぜ言語の作者が人々をだます可能性が高い評価方法を選ぶのか疑問に思っています。
しかし、これらの質問は、左側またはクラスメンバー内の演算子を扱っていますが、この奇妙な動作はRHSで発生します。