experssion:int y=1;
0||y--;"0||y--"的表达式值是多少呢?应该是0吧,bool值false.experssion1:bool a;
int y=1;
a=0||y--;
cout<<a;大家试验一下输出,a的输出是true啊?why?
0||y--;"0||y--"的表达式值是多少呢?应该是0吧,bool值false.experssion1:bool a;
int y=1;
a=0||y--;
cout<<a;大家试验一下输出,a的输出是true啊?why?
int y=1;
a=0||y--;//错了,应该--y
cout<<a;
你要返回false该写成a==0||--y
2.关于||和|,我不大明白你的意思,|是按位或
3.y--,--y的区别我当然知道了,只是如果在这里用了y--,出现这样的结果该如何解释呢?
y = 1; 则y--表达式的值是1,
a = 0||y-- 等价于a = 0||1,||运算符只要左右表达式其中一值为真则返回true,所以a == true;
而--y表达式的值为0,则(a = 0||0) == false;
#include<iostream>
using namespace std;int main()
{int x=1;
int y=1;
bool a=false;
a=(0||(y--)); cout<<a;
}可惜用--y和y--还是不能很好的解决问题啊,大家可以去试试这个代码的输出。hoho
等价于
a = 0 || y;
y --;
结果是1要看到不同的结果,你要写成
a = ( 0 || (--y) )
当中 --y是先把y的数值减1,然后返回y的数值
它等价于y = y - 1;
a = 0 || y
呵呵,i--和--i楼主没有搞清楚
原来是这个BUG啊,真大。