C++中为什么if(a)与if(a!=0)等价? if(a);if(!a);if(a!=0);if(a==0)...

作者&投稿:只明 (若有异议请与网页底部的电邮联系)
if(a)是指如果a不是0,就执行if后面的语句;
if(a!=0)是完整写出了if(a)的形式,同样是指如果a不是0,就执行if后面的语句。

C 语言中认为,“非”“零”就是“一”:“非”对应“0”,“是”对应“非0的任何值”

所以,就非常明确
if(a!=0): --- A如果非0,即 如果A存在;
if(a) --- 把A看成是一个判断条
“是”或者“非”
那么就是“非0"或者"0"
也就是"a!=0"或者"a==0"了

这是有C++编译器决定的,对于if(a)在编译时会查看a的值,如果a的值为零,就为假,a的值只要不为零,就为真,故写成if(a)与if(a!=0)等价,a可以为字符型,整型等。

在C++中 true=1 false=0

if(condition)语句中condition 是一个bool的,if(a)如果a==0相当于if(false),如果a!=0相当于if(!false)

这个问题不难,首先你要明白非零为真,零为假,这个应该知道吧?如果a等于零,两个条件等价,即都不成立,反之也是,仍然等价,都成立

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

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)
合理使用优先级可以极大简化表达式。

如果a是数字,那么if(a);和if(a!=0);是等效的,if(!a);if(a==0)是等效的,和因为在真假判断中,非零数字等价于true,而0等价于false。if(a) if(!a) if(a!=0) if(a==0) 都是看括号里的东西是否为真,为真则执行,不为真则跳过。

...a;那么if(a)……和if(!a)……分别表示什么意思
答:if(表达式)这个表达式不管是是什么,if只判断这个表达式最终的结果是不是为零。不管这个语句是什么,判断也好,输入输出语句也好。不为零就执行if下面包含的语句,是零就不执行if下面所包含的语句。就这么简单 例如你这个语句 if(a)就是判断a是否为零,if(!a)就是判断!a是否为零 还要就是定义了指针...

求解在C语言中if(a)表示什么意思 非常感谢
答:您好:if后的括号内存放的是一个表达式,如果这个表达式的值为非0(即为真),就执行循环体,值为0(即为假)就不执行循环体。同理,如果a==0,就不执行循环体;如果a!=0,就执行循环体。那么if(1)就会执行循环体,if(0)就不执行循环体 希望能对你有帮助。

...第一个怎么看,为何只有两个条件?第二题if(a)if(b)是什么意思啊,这不...
答:第一题,for循环的用法 上题已经满足了条件了,其实也可以这么写 for(j=1;j<4;j++)或者 int j=1;for(;j<4;j++)第二题 ,if的判断条件 if(true)if(false)if里面只有两个值,true or false,而相应的就是1或者0 >=1的为true =0的为false ...

if语句中的条件判断表达式为什么是a?
答:若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为a;答案选择D;理由如下:因为if后圆括号的隐含意义是当括号内程序为“真”,也就是1的时候,继续执行下面的程序,也就是说 如果程序写成if(a) 那么就可以解释为当a不等0时,执行下述程序,另外要声明的就是,在编程中,...

C语言 if(a)是什么意思
答:a是一个值 如果a不为0则运行if中的语句 如果a为0则不运行if里面的语句 a>b这个表达式如果成立则 a>b的值就是1 否则的话就是0 这样明白不?

c++的if(a)是什么意思?能给我举个例子吗?
答:a如果不等于0的话,if后的语句就能执行了;否则,if后的语句就不能执行,只能执行else了 如:int a;scanf("%d",&a);//输入一个数 if(a){a是不等于0的;} else {a是等于0的;}

if(a=1)和if(a==1)有什么区别?
答:if(a=1)和if(a==1)的区别在于:在C & C++ 程序设计语言中,等号“=”是赋值运算符, a=1 表示把1赋给变量a,于是a的值就是1。其中a必须是左值,不能为右值如常量等。两个等号“==”是关系运算符,表示等于。if(a=1)实际上等于两个操作,1. a = 1 2. if(a)那么if(1)其实就是...

C++中,if(a=12)和if(a==12)有什么区别,还有if(a>100 & b>50)和if(a...
答:1、if(a=12)即把12赋值给变量a,而if中默认会把12认为是true,因此必然执行跟在这个if后的语句块。if(a==12)即比较a是否等于12,结果返回true或false,这取决于a的值。2、&是按位运算符,用4位为例,当a大于100时,比较式返回0001(true),当b也大于50时,同理返回0001(true),此后将...

C语言中,If(a==b)和if(a=b)什么区别?
答:C语言中没有连续不等式的写法。if(a>b>c) 这种写法程序不能正确执行。if(a>b&&b>c) 是正确写法。

c语言中 if(a=0)和 if(a==0)表达的意思相同吗
答:不同,=是赋值符号,而==是等号,就如同数学中的等号一样。if(a=0),不管怎样这都是真。if(a==0)z只有当a为0这后面语句才能执行。要注意这两个符号的运用。还有很多,例如a++,++a,--a,a--等。