c++非 运算问题,大侠帮忙。

来源:百度知道 编辑:UC知道 时间:2024/07/06 13:37:24
给大侠请教个问题:
#include<iostream.h>
int main()
{
cout<<0&&!2+5||1&&!(2+!0);
return 0;
}
// 结果为0
#include<iostream.h>
int main()
{
cout<<! 1+2>1;
return 0;
}
//这个为什么不能运算?

运算符优先级 "()" > " !" > "+" > 输出(<<)
所以cout<<124&&2; 结果为124
cout<<!0+2; 结果为3
但是大于小于不能不加括号和输出运算符(<<)同时出现,这样就会无法错误。 cout<<!1+(2>1) 结果为1

#include<iostream.h>
int main()
{
cout<<(!1+2>1);
return 0;
}

3楼的回答是正确的
流输入输出操作">>""<<"和大于号小于小"<"">"直接同时使用会引起编译二义性错误,所以,加个括号以区分大于小于操作符与流操作符就可以了。
原理上讲呢,>> <<分别是右移,左移操作符来着。。

我的理解是:
c++中 如果有逻辑与预算 如果第一个表达式为假 则不在计算后面的表达式 你第一个程序中 0 && ……后面的根本没有必要计算了 所以可能程序能正常运行 第二个程序能是不支持 + 运算吧

把那个1+2>1改为(1+2>1)加个括号即可

老大!你先去查查运算符的优先级吧