[2272] Re:比較演算子を使った式の変数への代入について
投稿者:(ぱ)こと管理人
2022/02/13 23:04:05
>はじめまして、mhashと申します。
はじめまして。
>bool = ( a == b )
>(※bool,a,bは整数型の変数)
>のように比較演算子==での比較結果を直接変数に代入している箇所があったのですが、
>この書き方は規格上保証されているものなのでしょうか?
==(等価演算子)については、JIS X 3010:2003なら「6.5.9 等価演算子」に記載があって、
「各演算子は指定された関係が真の場合は1 を,偽の場合は0 を返す。その結果は,
型int をもつ。」
とあるので、この結果をint型の変数に代入するのは完全に合法です。
>また、保証されている場合はどのバージョンからでしょうか?
Cができた当初から、だと思います。いわゆる普通のif文で、
if (a == b)
と書いたとしても、これは等価演算子の結果をもとに条件分岐しているにすぎません。