###前提
C言語を復習中の大学生です.
###論理演算子に関する問題
以下,x,y,zの値は何が入るかという問題があります.
x = y = z = 1; ++x || ++y && ++z; printf("x=%d\ty=%d\tz=%d\n", x, y, z);
答えは
x=2 , y=1 , z=1 です.
###疑問
-
||よりも&&のほうが演算子の優先順位が高いので,++y && ++zから計算しますよね?
-
そして,インクリメント演算子が変数の前についているので先に計算してy=2,z=2という考えではだめなのでしょうか?
-
また,論理演算子は条件文とセットで使われるものを多く見かけるのですが,上記の問題では論理演算子のみです.この場合変数及び式にはどのような処理がなされているのでしょうか?
以上,ご教示よろしくお願いいたします.
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。