帮我解决一个问题 很郁闷

guowl2008 2009-03-08 11:07:37
#include<iostream.h>
void main( )
{
int a=1,b=2,x,y;
cout<<a++ + ++b<<endl;
cout<<a%b<<endl;
x=!a>b;
y=x--&&b;
cout<<x<<endl;
cout<<y<<endl;
}
为什么x输出为-1 x=!a>b;这个是什么意思啊
...全文
99 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
grellen 2009-03-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yangch_nhcmo 的回复:]
C/C++ code
#include <iostream>
using namespace std;

int main( )
{
int a=1,b=2,x,y;
cout << a++ + ++b << endl; // a = 1; b = 3 ; ==> printf 4
cout << a%b << endl; // a = 2; b = 3 ; a%b = 2;
x=!a>b; // x = (!a)>b; !a = 0; (!a)>b = 0; x = 0;
y=x-- && b; // y = (0 && 3) = 0;
cout << x << endl; //x = -1
cout << y << endl; // y = 0

return 0;
}
[/Quote]

up
lzy340623339 2009-03-09
  • 打赏
  • 举报
回复
不是解决了吗?
  • 打赏
  • 举报
回复
2楼说的很详细了.
x=!(a>b); 再改下,对比下就过你就更清楚了
yangch_nhcmo 2009-03-08
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int main( )
{
int a=1,b=2,x,y;
cout << a++ + ++b << endl; // a = 1; b = 3 ; ==> printf 4
cout << a%b << endl; // a = 2; b = 3 ; a%b = 2;
x=!a>b; // x = (!a)>b; !a = 0; (!a)>b = 0; x = 0;
y=x-- && b; // y = (0 && 3) = 0;
cout << x << endl; //x = -1
cout << y << endl; // y = 0

return 0;
}


Sco_field 2009-03-08
  • 打赏
  • 举报
回复

#include <iostream.h>
void main( )
{
int a=1,b=2,x,y;
cout <<a++ + ++b <<endl;
cout <<a%b <<endl; // 此时a=2 b=3
x=!a>b; // 比较!a与b 若!a>b则表达式为真,x=1,否则x=0 因为!a=0,b=3,因此x=0
y=x--&&b; // 此时 x=0-1=-1
cout <<x <<endl; // x=-1
cout <<y <<endl;
}

[Quote=引用楼主 guowl2008 的帖子:]
#include <iostream.h>
void main( )
{
int a=1,b=2,x,y;
cout < <a++ + ++b < <endl;
cout < <a%b < <endl;
x=!a>b;
y=x--&&b;
cout < <x < <endl;
cout < <y < <endl;
}
为什么x输出为-1 x=!a>b;这个是什么意思啊
[/Quote]
wind00sky 2009-03-08
  • 打赏
  • 举报
回复
去处符优先级问题,看看书,然后再看看结合的方向

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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