int i = 5;
int a = 1;
int b = 2;
int c = 3 ;
i = ++a||++b||++c;
cout<<i<<" "<<a<<" "<<b<<" "<<c<<endl;
请问输出结果是什么?
鄙人刚开始认为是 i=1;a=2;b=3;c=4;
可是很遗憾答案是错的。为什么呢?
C++中 || 运算认为0是假的,非0为真。所以 ++a后,a为2。可是 || 运算 有个判断方法就是,如果前面一个条件为真。那么就不会再判断后面的条件。
++a为真,那么++b就不会再执行。因为++a||++b是真的,那么++c也不会被执行。
而且||运算的结果只有两个,要么为0(假),要么为1(真)。所以 i=1.这一点要和 | 区别开来。