vc++中的一个BUG?!

chaiafeng 2004-12-27 03:54:42
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?
...全文
242 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaiafeng 2004-12-31
  • 打赏
  • 举报
回复
恩,这个问题就算解决了:)分数加给happy_888和ipgk了,谢谢大家的支持!
hawkoffree 2004-12-30
  • 打赏
  • 举报
回复
同意ipgk的说法
hjunxu 2004-12-30
  • 打赏
  • 举报
回复
呵呵,以为套上括号就可以了。FT
hjunxu 2004-12-30
  • 打赏
  • 举报
回复
晕。
原来是这个BUG啊,真大。
ylhyh 2004-12-30
  • 打赏
  • 举报
回复
回复人: laogong(老臭虫) ( ) 信誉:100 2004-12-30 12:32:00 得分: 0


呵呵,i--和--i楼主没有搞清楚


laogong 2004-12-30
  • 打赏
  • 举报
回复
呵呵,i--和--i楼主没有搞清楚
寻开心 2004-12-30
  • 打赏
  • 举报
回复
a = ( 0 || ( -- y))
当中 --y是先把y的数值减1,然后返回y的数值
它等价于

y = y - 1;
a = 0 || y
寻开心 2004-12-30
  • 打赏
  • 举报
回复
a = ( 0 || (y--) )

(y--) 运算的结果是先返回y的数值,然后再把y的结果减1

所以,上述表达式等价于
等价于
a = 0 || y;
y --;
结果是1

要看到不同的结果,你要写成
a = ( 0 || (--y) )
chaiafeng 2004-12-29
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{int x=1;
int y=1;
bool a=false;
a=(0||(y--));

cout<<a;
}

可惜用--y和y--还是不能很好的解决问题啊,大家可以去试试这个代码的输出。hoho
coldeyes414 2004-12-27
  • 打赏
  • 举报
回复
晕哦~~~ 是y--和--y的区别,楼上的那位说的是对的
ipgk 2004-12-27
  • 打赏
  • 举报
回复
晕,楼主还不明白?
y = 1; 则y--表达式的值是1,
a = 0||y-- 等价于a = 0||1,||运算符只要左右表达式其中一值为真则返回true,所以a == true;
而--y表达式的值为0,则(a = 0||0) == false;
likailiman 2004-12-27
  • 打赏
  • 举报
回复
初来乍到 这里怎么法帖 一直没有看见 在那里发帖
chaiafeng 2004-12-27
  • 打赏
  • 举报
回复
1.关于优先级,C++中是!,算术运算符,关系运算,&&(逻辑与),||(逻辑或),赋值运算,这是从C中继承的不会有错。
2.关于||和|,我不大明白你的意思,|是按位或
3.y--,--y的区别我当然知道了,只是如果在这里用了y--,出现这样的结果该如何解释呢?
SatanLi1982 2004-12-27
  • 打赏
  • 举报
回复
^_^
江海汇 2004-12-27
  • 打赏
  • 举报
回复
hahaha...学到东西了!
qrlvls 2004-12-27
  • 打赏
  • 举报
回复
嘿嘿
qrlvls 2004-12-27
  • 打赏
  • 举报
回复
嗯,简直就是个大BUG
bobob 2004-12-27
  • 打赏
  • 举报
回复
楼主自己错了哦~~~~~
殇迪 2004-12-27
  • 打赏
  • 举报
回复
--y 和 y-- 楼主搞清楚啊^_^
oyljerry 2004-12-27
  • 打赏
  • 举报
回复
考虑运算符优先级
加载更多回复(6)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧