[C言語]三項演算子とboolについて

過去の情報、c言語だから悩んだのかも。javaだと成立しない。

=====
条件演算子(conditional operator)

式1 ? 式2 : 式3 ;
について思ったこと。

式1に入る物は式じゃなくて値(bool型)だと思う。
で、式1に int型の値を代入すると自動的にbool型に変換される。
例えば、

int n1=15;
(n1)?"true":"false";

と書いたとしても

(bool(n1))?"true":"false";

ということを行っている。
bool型は結局のところ0(false) or 1(true)であり
かつ0以外の整数をbool型にキャストするとtrue(1)の値が返されることになっているからtrueが返されるんじゃないんかな?

if文の括弧の中と同じこと。

コメント

タイトルとURLをコピーしました