考虑一下我编写的使用和if
else
声明的代码
#include#include using namespace std; int main() { int a = 5; if(a) { printf("if %d\n" , ++a); } else printf("else %d\n" , a); }
如果我设置int a = 5
它打印输出"如果6"
但如果我设置int a = 0
它打印值"else 0"
为什么会发生什么原因?
++a
将值增加a
1,是一个等于递增值的表达式.
时a
为5,if (a)
是if (true)
因为a
是非零的.所以printf("if %d\n" , ++a);
运行,++a
在该语句中递增a
并计算到该递增值,6.
当a
为0时,if (a)
是if (false)
.所以printf("else %d\n" , a);
跑.a
在这种情况下没有改变.