+ 1
a=b=false; сout<<a|| !b; почему отсюда выходит 0? тогда как сout<< !a||b выходит 1???
пожалуйста уделите мне немного времени,заранее спасибо
3 ответов
+ 5
Просто добавьте скобки и работайте правильно 😃
#include <iostream>
using namespace std;
int main() {
bool a = false, b = false;
cout << (a || !b);
return 0;
}
+ 1
It's a question of precedence (priority). Priority of << is higher than ||.
https://code.sololearn.com/ccmRj9zntciA/?ref=app
+ 1
If you just write cout<<a||!b then it will output the value of a, when cout<<(a||!b) would give you the result of the logic in brackets, same with !a||b (Если просто написать cout<<a||!b то программа возвратит a но если добавить скобки как в cout<<(a||!b) то тогда будет возвращен результат логики в скобках, тоже самое и с !a||b)
here is the code for you to understand it better (Посмотри этот код, будет легче разобраться):
https://code.sololearn.com/c7Wf4DOX6MoW