ここから本文です

!(0)=1 !(1)=0 !(5)=? !( )の中の値はどう判定されるんでうか?

ill********さん

2012/8/2203:58:05

!(0)=1
!(1)=0

!(5)=?

!( )の中の値はどう判定されるんでうか?

閲覧数:
215
回答数:
3

違反報告

ベストアンサーに選ばれた回答

fuo********さん

2012/8/2210:50:33

通常の言語では、!は否定を意味します。
つまり、かっこの中身が真である!(真)は偽を、かっこの中身が偽である!(偽)は真を表します。

使用している言語がJavaであれば真偽値を表す型(boolean型でしたっけ)を持っているので、真はtrue、偽はfalseみたいに直接表せます。なので、!(true)や!(false)みたいに表すことができるんですね。

しかし、Cは違います。C言語は、真偽を表す型が存在しないのです。
そこで、どうするか。
Cでは、偽を0、真を0以外(通常は1)のようにして表します。

その結果、
!(0)は1となります。
!(1)や!(5)は0となります。

質問した人からのコメント

2012/8/25 15:20:48

答えていただいてありがとうございます。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

rhi********さん

2012/8/2205:28:22

/*
0822_035805どう判定される.c
illikeher_ilikehimさん

!(0)=1
!(1)=0

!(5)=?

!(_)の中の値はどう判定されるんでうか?

>>>>コンパイラに聞いてみれば?
________私のかかりつけのコンパイラはこう云ってます
*/
#include_<stdio.h>

int_main(void){
__printf("!(0)=%d\n",!(0));
__printf("!(1)=%d\n",!(1));
__printf("!(5)=%d\n",!(5));
__return_0;
}
/*_出力:
!(0)=1
!(1)=0
!(5)=0
*/

m_t********さん

2012/8/2205:25:39

C言語の!演算子は、非ゼロの時は0、ゼロの時は1になります。
5は非ゼロですから、 !5 は !1 と同様、結果は0です。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる