Я пытаюсь установить равенство трех равных переменных, но следующий код не печатает очевидный правильный ответ, который он должен распечатать. Может ли кто -нибудь объяснить, как компилятор анализирует данное, если (условие) внутри?
#include
int main()
{
int i = 123, j = 123, k = 123;
if ( i == j == k)
printf("Equal\n");
else
printf("NOT Equal\n");
return 0;
}
< /code>
output: < /p>
manav@workstation:~$ gcc -Wall -pedantic calc.c
calc.c: In function ‘main’:
calc.c:5: warning: suggest parentheses around comparison in operand of ‘==’
manav@workstation:~$ ./a.out
NOT Equal
manav@workstation:~$
< /code>
Поднимись приведенными ниже ответами, является ли следующее утверждение, чтобы проверить вышеупомянутое равенство?if ( (i==j) == (j==k))
Подробнее здесь: https://stackoverflow.com/questions/215 ... s-intended
Два оператора «==» равенства в том же ', если' условие не работают, как предполагалось ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение