質問: 表題のようにプログラム中で ``` if(a!=b) ``` を ``` if(a=!b) ``` と誤って記述した所、コンパイルはできるのですがそこでプログラムが停滞していました。 コンパイルができるということはこの記述にも意味があるのでしょうか? どのような意味なのでしょうか? --- 追記 ``` for(i=0;i
回答: b の否定結果を a に代入していると思います。 分けて考えると以下のようになります。 `if( a = (!b) )` このため、if( a ) という比較式になります。 つまり、a が 0 以外の場合は常に真として扱います。