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

C++中为什么if(a)与if(a!=0)等价?
我主要是不明白a与a!=0的关系,为什么它们相等?

if(a)是指如果a不是0,就执行if后面的语句;
if(a!=0)是完整写出了if(a)的形式,同样是指如果a不是0,就执行if后面的语句。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-01
C 语言中认为,“非”“零”就是“一”:“非”对应“0”,“是”对应“非0的任何值”

所以,就非常明确
if(a!=0): --- A如果非0,即 如果A存在;
if(a) --- 把A看成是一个判断条
“是”或者“非”
那么就是“非0"或者"0"
也就是"a!=0"或者"a==0"了
第2个回答  2010-05-31
这是有C++编译器决定的,对于if(a)在编译时会查看a的值,如果a的值为零,就为假,a的值只要不为零,就为真,故写成if(a)与if(a!=0)等价,a可以为字符型,整型等。
第3个回答  2010-05-31
在C++中 true=1 false=0

if(condition)语句中condition 是一个bool的,if(a)如果a==0相当于if(false),如果a!=0相当于if(!false)
第4个回答  2010-05-31
这个问题不难,首先你要明白非零为真,零为假,这个应该知道吧?如果a等于零,两个条件等价,即都不成立,反之也是,仍然等价,都成立

C++中为什么if(a)与if(a!=0)等价?
if(a)是指如果a不是0,就执行if后面的语句;if(a!=0)是完整写出了if(a)的形式,同样是指如果a不是0,就执行if后面的语句。

在C语言编程时,if(a ==0 )和if(0 == a)的区别?
效果是一样的,没有区别,但是我建议你把常量写在前面,也就是尽量使用if(0==a)的格式,这样出错时少打一个=的时候,程序就会报错。

在C++IF语句中如果把if(a==0)写成if(a=0)编译系统有何反应,输出的结果...
输出的结果是0。编译过程一般是在计算机系统中实现的,是将源代码转化为计算机通用语言的过程。编译器中包含入口点的地址以及机器代码。编译器是计算机程序中应用比较多的工具,在对编译器进行前端设计时,一定要充分考虑影响因素,还要对词法、语法、语义进行分析。编译原理课程教学理想情况,学生应该能够独立...

c++里 if(a=0) 判断的是什么
a=0 把0赋值给a ,此时 a值为0 ,C++中0表示 false 所以 if(a=0) 等价于 if(false)

为什么if语句中的条件判断值非0即为真呢?
因为if后圆括号的隐含意义是当括号内程序为“真”,也就是1的时候,继续执行下面的程序。也就是说如果程序写成if(a) 那么就可以解释为当a不等0时。执行下述程序,另外要声明的就是,在编程中,条件判断值非1即0,其他数字也与1等价。

在C++中if(!a)是什么意思?
如果a等于零,则!a就是非零,就执行if中的语句 如果a是非零,则!a就是零,就不执行if中的语句 希望采纳

C++ IF这两种条件判断哪个速度快?
明显第一种。逻辑运算符有短路情况。在处理== 或者 !=的效率应该是一样的。A&&B, 如果A是false那么就发生短路,后面就不用执行了。在这里的概率是, a!=0的概率是, 9\/10 A||B. 如果A是true的话也会发生短路,后面的也不用执行,这里的概率是 1\/10 从书写的来看,也明显是第一种。

C++中 if(!XXX)这种语句是什么意思
!XXX 就是 非XXX的意思。!XXX 就是 XXX 的补集。比如说 int a = 1,b = 0;(即a为真b为假时) if (a) 和 if (!b)是一样的,if (b)和if(!a)是一样的。

if(!a) 条件表达式中 括号里面的条件 !表示的是什么意思 !a 和什么是...
在if(表达式){语句} 条件语句里,如果表达式值为真的话,刚执行花括号里的语句;若表达式为假,刚不执行 对于if(!a)来说,要看你给a的初值是什么,如果是一个非零值的话,那么!a就是假,不执行语句;如果a的初值为零,那么!a就是真,执行语句(另外,C++中把非零的数看作是真,零为假)...

c++。这里两个条件一个用if...,if...;或者if...else if...为什么答案出...
else if只有在第一个if条件不符合的时候才做,所以大写变小写,小写变大写。两个if,第一个做了不管结果都要再判断第二个,于是小转大倒是无所谓,大转小的刚转完,第二个if又判断它是小写再转大,于是出来的都是大写了。

相似回答