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?
解决方案 »
- WideCharToMultiByte到底怎么使用啊
- 帮忙看看一个vc的菜鸟问题
- 新手问题:基于对话框的程序,按Enter和ESC都会推出程序,请问怎么屏蔽掉?
- 请教:CMarkup解析xml文件?
- 我想知道那个数学库(math.h)里面有些什么数学函数,哪里有详细介绍?
- 急!!在线请教串口通信方面的问题!(利用串口将音乐从电脑下载到手机上面)!100分!!
- wap问题?wml程序放在那啊?
- 请问各位大哥大姐:在“计算机管理”中的“本地用户和组”的“用户”里添加用户,windows在那里保存?
- Dll、多线程、事件传递
- 新手求教
- 我在dll中写了个有参数的函数,我调用就出错,怎么回事?
- 应该是一个难题:跨WindowStation/Desktop通过SendMessage发送消息
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啊,真大。