❤恋するコンピュータサイエンス❤

コンピュータサイエンス、3DCGをもっと楽しく、もっと本質的に!c言語、c++の記事中心です

if (!変数)とは?

Q.
① if(0)はブロックに入るか?

ブロックとは{}の事
② if(!変数)は何を表しているか?

A.
①入らない
②if(変数=='\ 0') と同じ意味である

 

 

解説)
if のカッコの中身は評価(真、偽を判定する)をするというのが基本だ。

つまり

if(0) bool値におけるfalse
if(1) bool 値におけるtrue
がまず基本だ。


if(変数)if(!変数)if(NULL)等、変数一文字の場合はどのうように考えれば良いのだろうか?

変数が*sを示している場合

 
これはif(*s == '\0')と同じ意味である。

== は真偽を判定している

つまり変数が存在するかしないかという評価をしているのである。
具体的には下記と同じことである。

if (!string)
とif (string==0)

は同じ意味である

 

これはwhile の()にも同じ事がいえる
while(条件)
このかっこの中身を評価するという

補足)
char *x 文字列リテラル (x)もしくはポインタ変数の場合によって意味合いが違ってくる
(!x)  x == NULL 
(x)      x != NULL
代表的な書き方は
int x; x がスカラーの場合。
if (!x) 
if (x)
等も意欲のある人は考えてほしい。