私はC言語を使い始めました。 if-else文の短い型である演算子。ただし、このコードを実行すると、次のようになります。"エラー:条件演算子の左辺オペランドとして左辺値が必要"
int b;
int x;
b=3<2?x=12:x=34;
「エラー:左辺オペランドが必要です」というエラーが表示されます。なぜそれが起こるのか分かりません。私の考えでは、プログラムはまずxに34を割り当て、次にxに34の値をbに代入します。 一方で、私はエラーなし
int b;
int x;
b=3<2?x=12:(x=34);
としてのステートメントを使用することができます。私は自分の本を見たが、何も助けなかった。なぜ私は最初の声明を使うことができないのですか?私のコンピュータは何をしようとしていますか? おかげで...興味深い質問について
演算子の優先順位おそらく? –
これは三項演算子で、 '?'(some_condition) ':'(other_condition)です。 – t0mm13b
'x'に副作用があり、その値が' b'に代入されている場合は、代入式の*両*のまわりにかっこが必要です。 'b = 3 <2? (x = 12):(x = 34); 'その三項演算子の後に' printf( "%d%d \ n"、b、x);を追加してみてください。 –