具体的には、この式は以下のような意味を持ちます。条件(a<b)が真の場合、xにはaの値が代入されます。条件が偽の場合、xにはbの値が代入されます。
例えば、以下のコードを考えてみましょう。
#include <stdio.h>
int main() {
int a = 5;
int b = 10;
int x;
x = (a < b) ? a : b;
printf("xの値は%dです。\n", x);
return 0;
}
このコードでは、変数aに5、変数bに10を代入し、条件演算子を使用してxに値を代入しています。a < bの条件は真なので、xにはaの値である5が代入されます。したがって、出力結果は「xの値は5です。」となります。
条件演算子は短くて便利な表記方法であり、条件に基づいて値を選択する際によく使用されます。他の条件分岐構文(if-else文やswitch文)と比べて、コードの行数を減らすことができます。
さらに、条件演算子は式の中にネストして使用することもできます。例えば、以下のようなコードを考えてみましょう。
#include <stdio.h>
int main() {
int a = 5;
int b = 10;
int c = 15;
int x;
x = (a < b) ? ((b < c) ? c : b) : ((a < c) ? c : a);
printf("xの値は%dです。\n", x);
return 0;
}
この場合、条件演算子がネストしており、a、b、cの中で最大の値をxに代入しています。出力結果は「xの値は15です。」となります。
以上のように、条件演算子はCプログラミングで非常に便利な構文です。条件に基づいて値を選択する際に使用し、コードの短縮化に役立ちます。