假设有变量int a;那么if(a)……和if(!a)……分别表示什么意思 C语言中if(!a)表示什么意思

作者&投稿:答高 (若有异议请与网页底部的电邮联系)
if(表达式)
这个表达式不管是是什么,if只判断这个表达式最终的结果是不是为零。不管这个语句是什么,判断也好,输入输出语句也好。
不为零就执行if下面包含的语句,是零就不执行if下面所包含的语句。
就这么简单
例如你这个语句
if(a)就是判断a是否为零,if(!a)就是判断!a是否为零

还要就是定义了指针也就是int *a,那么a就是一个地址,一般不可能为零
if(a)这个语句也可以执行。不过应该是都为真吧,相当于if(1)

if(a)是判断a是否为正数,如果为正数就执行if下面的一条语句,否则就不执行。
if(!a)判断a是否为0或者负数,如果为为0或者负数就执行if下面的一条语句,否则就不执行。

不同
int *a,a就是指向int类型变量,a里存放的是地址。如果换成!(*a)的话,意思一样的。

if(a)……表示a的值非0时执行后面的语句
if(!a)……和上面相反,a为0时才执行

if (a) 是当a为非0时,即当a为真时,就执行,否则执行else下面的语句。而if(!a)刚好跟这个相反,因为a前面加了个!。如果改成int *a时也是一样的,此时a变成了个地址信息,也是一样判断的。明白了吗?

简单的说,就是判断a是否为非零数
if(a) //a非零真,条件成立, a为零 条件不成立
if(!a) //a非零 !a为假,条件不成立 a为零 !a为真,条件成立

C语言题目:int a=1;if(!a)和if(a)是什么意思?~

在C语言中, 只有0为假, 非0都为真
if(条件表达式) 条件为真是执行语句if的语句
int a=1;// 给定a为1, 即非零
if(!a)// a非零为真, 真的非(!)即为假, 这一句判断后将不执行if后的相应语句
if(a) // a非零, 条件为真,执行相应语句

if( !a )就是一个判断语句,判断表达式 !a 的真假,进而决定是否执行后续操作。

如果a是一个变量
当a等于0时,!a=1(为真),执行后续操作;
当a不等于0时,!a=0(为假),不执行后续操作;

如果a是一个表达式
将表达式的值计算出来,当成变量来操作,判断过程同上。