if文について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
nanashi

if文について

#1

投稿記事 by nanashi » 15年前

以下のようなプログラムで、前者のif文でif内が実行されると
思っていたのですが、実際は後者のようにしないとif文内が実行されません。
どうしてなのか、ご教授願えないでしょうか?

#include <stdio.h>
int main(){
char a = 0xf0;

if((unsigned char)a & 0xff == 0xf0) //こちらでは条件にあてはまらない
//if(((unsigned char)a & 0xff) == 0xf0) //こちらでは条件にあてはまる
{

}

return 0;
}

box

Re:if文について

#2

投稿記事 by box » 15年前

== 演算子の方が & 演算子よりも優先順位が高いからです。

nanashi

Re:if文について

#3

投稿記事 by nanashi » 15年前

なるほで。==は優先順位が一番下だと思ってました。
ありがとうございました。

box

Re:if文について

#4

投稿記事 by box » 15年前

演算子の優先順位については、おおかたの入門書に書いてあるはずです。
ただ、すべての順位を覚える必要はありません。
自分が行ないたいようにカッコを書けばよいです。変にうろ覚えするより、よほど確実です。

閉鎖

“C言語何でも質問掲示板” へ戻る