Я наткнулся на конкурентный вопрос C, который звучит следующим образом:
Найти результат:
#include <stdio.h>
int main(void) {
int a=5, b=10, c=5;
int x;
x = a>b>c;
printf("%d\n", x);
return 0;
}
Компилятор отвечает 0.
Мое объяснение состоит в том, что, возможно, это побочный эффект оценки справа налево. Я предполагаю, что сначала оценивается b>c
(при условии, что он сначала помещается в стек, я здесь запутался, поскольку знаю, что > ассоциативен слева направо), что оценивается как истинное. Значение этой истинной переменной, которая представляет собой число > 0 (нам неизвестно), по которому оценивается a > that_value
, дает результат. Впрочем могу ошибаться!
Любые указатели/понимание того, как оценивается результат, были бы полезны. Спасибо.
EDIT: я протестировал очень старый компилятор, который дал 1, это была ошибка с моей стороны, исправил ее.
>
. - person Jens   schedule 09.10.20140
? Если речь идет о последнем, это дубликат уже существующих вопросов. - person alk   schedule 09.10.2014