C语言中if(a)等价与啥

如题
还有int a;
scanf("%d",&a);
if(!a)
printf("continue");
里面的if语句中的 !a 又等价与什么呢?

新学C 书上没找到解释的~

if(a)和if(a!=0)等价。if(!a)和if(a==0)等价

if()……;是逻辑判断语句,如果括号内逻辑值为真,则继续执行下一条语句,否则不执行,计算机默认以“0”代表逻辑假,以“非0值”代表逻辑真。

上述程序的意思就是不断从键盘向a赋值,直到赋给a的值为一个非0数,若a非0,则逻辑值为真,“!”表示取反,!a的逻辑值就为假,不执行下一条语句;从逻辑值的角度考虑:

if(a)等价于if(a!=0)

if(!a)等价于if(a==0)

扩展资料

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。 

相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。

而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)

合理使用优先级可以极大简化表达式。

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-01-22

if语句为判断语句,其功能为,如果括号内的表达式为真,则执行,否则不执行。

所以无论括号内为何种表达式,最终都是用按照逻辑运算表达式取值的。也就是结果为0,则按假处理,否则按真处理。

if(!x)等价于2113

if(x==0||x=='\0');

if(x)等价于

if(x!=0||!x==0)。

如果布尔表5261达式为true,则

if语句内的4102代码块将被执行。如1653果布尔表达式为 false,则

if语句结束后的第一组代码(闭括号后)将被执行。

“!”:(逻辑非)逻辑运算符。“逻辑非”就是指本来值的反值。

扩展资料:

if语句的一般形式如下:

if(表达式)语句1

[else语句2]

if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子。

参考资料来源:百度百科-if语句

本回答被网友采纳
第2个回答  推荐于2018-03-20
if()
……;
是逻辑判断语句,如果括号内逻辑值为真,则继续执行下一条语句,否则不执行
计算机默认以“0”代表逻辑假,以“非0值”代表逻辑真

上述程序的意思就是不断从键盘向a赋值,直到赋给a的值为一个非0数
若a非0,则逻辑值为真,“!”表示取反,!a的逻辑值就为假,不执行下一条语句;从逻辑值的角度考虑:
if(a)等价于if(a!=0)
if(!a)等价于if(a==0)本回答被提问者和网友采纳
第3个回答  2009-01-15
看a的值
如果a=0的话
那么意思就是说条件为假
所以if(!a)就是非0
即真。
第4个回答  2009-01-15
C语言中的非零即真,也就是a除非等于0即a==0时为假以外,无论a等于什么都等价于a==1。那么!a真好相反,只有当a==0时为真,其他的无论a等于什么都是假

C语言中if(a)等价与啥
if(a)和if(a!=0)等价。if(!a)和if(a==0)等价 if()……;是逻辑判断语句,如果括号内逻辑值为真,则继续执行下一条语句,否则不执行,计算机默认以“0”代表逻辑假,以“非0值”代表逻辑真。上述程序的意思就是不断从键盘向a赋值,直到赋给a的值为一个非0数,若a非0,则逻辑值为真,...

C语言中if(a)等价与啥
if(a)等价答于if(a!=0)if(!a)等价于if(a==0)

c语言if(a)什么意思
等价于if(a)。 if(a==0): 如果a等于0,则使得if条件成立,反之不成立。等价于if(!a)。

c语言中为什么会不等于\/0
C语言中if语句测试一个表达式是否非0。非0就是真,0表示假。if(a)等价于if(a!=0),就是测试a非0

C程序C中 if('a'<=ch<='z')与(ch>='a'&&ch<='z')等价吗 为什么
if('a'<=ch<='z')与(ch>='a'&&ch<='z')是不等价的 'a'<=ch<='z',在c语言中没有这种运算,如果非要那么用,那运算顺序是'a'<=ch,那么结果是0,或者1,再运算<='z',这样的话恒成立

c语言中if表示什么
c语言中if(a)表示当a等于0时,不执行if语句中的代码.当a非0时,执行if语句中的代码。c语言中if(a)括号里面的是逻辑判断语句,如果括号里面的逻辑值为真就执行后面的if语句。

求解释C语言中if后面紧跟while作用
if 和 while 的语句块如果只有一行语句那么是可以省略大括号的,因此等价于:if (a == 0) { while (b == 1) { ... }} 但是有时候要加大括号,否则产生歧义,如:if (a == 1) \/\/要加上大括号 if (b == 1) ...else{ ...}下面的else是对应的那个if?

if(a> b> c)是什么意思啊
在C语言中,if(a > b > c)是一个复合表达式,它表示如果a大于b,并且a大于b的结果大于c,则表达式的结果为真。否则,表达式的结果为假。换句话说,if(a > b > c)等价于if((a > b) > c)。以下是一个示例代码,演示了如何使用if(a > b > c)表达式:运行结果:♡♡ 有...

C语言中if(!a)表示什么意思
if( !a )就是一个判断语句,判断表达式 !a 的真假,进而决定是否执行后续操作。如果a是一个变量 当a等于0时,!a=1(为真),执行后续操作;当a不等于0时,!a=0(为假),不执行后续操作;如果a是一个表达式 将表达式的值计算出来,当成变量来操作,判断过程同上。

c语言中if(a=5)对于这种表达是什么意思啊??
这个代码没有上下文不好说的太绝对,不过如果这是你看到的能正确运行结果的代码,那么应该是这样理解。先赋值,再执行一个if语句,不过,这样的写法真是不好,如果是我,我就说它是错误的。你可以运行一下下面的代码就想清楚了。#include<stdio.h> int main(){ int a = 1 ;int b = 2 ;if(a...

相似回答