Это два простых примера на 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' для двоичного 'оператора &'.
binary32
,binary64
и т. Д. И набор функций преобразования. В C ++ они семантически различны, но этого не видно, потому что они синтаксически не отличаются от целых чисел. Сказав это, некоторые умные люди пошли этим путем, например. C #. ИМО это не очевидное дизайнерское решение. - person luk32   schedule 28.12.2015