Разница между | и || или & и && [дубликаты]
На этот вопрос уже есть ответ здесь:
Почему мы не можем использовать побитовые операторы для типов с плавающей запятой и двойных 2 ответаЭто два простых примера на C ++, написанных на Dev-cpp C ++ 5.4.2:
float a, b, c;
if (a | b & a | c)
printf("x = %.2f\tF = %.0f\n", x, F);
else
printf("x = %.2f\tF = %.2f\n", x, F);
и этот код:
float a, b, c;
if (a || b && a || c)
printf("x = %.2f\tF = %.0f\n", x, F);
else
printf("x = %.2f\tF = %.2f\n", x, F);
Может кто-нибудь сказать мою разницу между||
> |
а также&
> &&
, Второй код работает, но первый нет. И компилятор выдает сообщение об ошибке:
[Ошибка] недопустимые операнды типов «float» и «float» для двоичного «оператора &».