C言語なら俺に聞け(入門篇)

このエントリーをはてなブックマークに追加
664デフォルトの名無しさん
ちと勘違いしてました。VC6でWinMainで試してました。
C++だと変数の参照を返すからコンパイル通るんだ…。

ここはC言語スレでしたかorz

たしかにCだと
b ? c = d : e = f;

これは書けませんね。

ただ、演算子の優先順位というに点だけ着目すると、Cでは
(b ? (c = d) : e) = f;
こうなって左辺値に不適合でエラー

C++だと
b ? (c = d) : (e = f)

このように実動作しているようです。直感的にはC++流の解釈の方が
素直な気がしますが、三項演算子の コロン以降だけを特別処理している
気がしてならない…。

スレ汚し失礼しました。C++スレに行って来ます。