回答編集履歴

1

加筆修正

2020/03/11 14:56

投稿

majiponi
majiponi

スコア1722

test CHANGED
@@ -1 +1 @@
1
- 三項「演算子」は、あくまで「値」を計算するものです。printf関数は複数の値を引数として呼び出すことができますが、「値」とは、printf(A, B, ...)とあるうちの、AやBのことです。例えば、このAやBを、X ? Y : Zで置き換えると、printf(X ? Y : Z, B, ...)となります。もっと具体的にすると、printf(a % 2 == 0 ? "Even! %d" : "%d is Odd", B)とすれば、aが偶数ならprintf("Even! %d", B)と、奇数ならprintf("%d is Odd", B)と同じになります。
1
+ 三項「演算子」は、あくまで「値」を計算するものです。printf関数は複数の値を引数として呼び出すことができますが、「値」とは、printf(A, B, ...)とあるうちの、AやBのことです。例えば、このAを、X ? Y : Zで置き換えると、printf(X ? Y : Z, B, ...)となります。もっと具体的にすると、printf(a % 2 == 0 ? "Even! %d" : "%d is Odd", B)とすれば、aが偶数ならprintf("Even! %d", B)と、奇数ならprintf("%d is Odd", B)と同じになります。三項演算子で、「表示する書式を」切り換えているわけです。「表示する書式と表示する値の組み合わせ」を切り換えるわけではないので、質問にあった、「,a」の記述が「三項演算子内では」不要なのです(三項演算子の終了後は必要)。