Re[2]: if (x = 0 || x++)
От: woody Украина http://woodpecker.org.ua
Дата: 22.02.05 15:21
Оценка: +1
Здравствуйте, Areg, Вы писали:

A>0 или 1 в зависимости в каком порядке компилятор вычислит арифметические выражения х=0 и х++.


мдя... както Joel Spolsky в одной из своих статей сказал что программисты не понимают принципы и работу с указателями в C... оказывается все намного сложнее

Ладна, http://lib.ru/CTOTOR/kernigan.txt

2.12. Старшинство и порядок вычисления

В приводимой ниже таблице сведены правила старшинства и ас-
социативности всех операций, включая и те, которые мы еще не
обсуждали. Операции, расположенные в одной строке, имеют
один и тот же уровень старшинства; строки расположены в по-
рядке убывания старшинства. Так, например, операции *, / и %
имеют одинаковый уровень старшинства, который выше, чем уро-
вень операций + и -.

OPERATOR ASSOCIATIVITY
++ RIGHT TO LEFT
|| LEFT TO RIGHT
= RIGHT TO LEFT

т.е. в начале будет вычислен x++, потом 0 || 0, и уже потом x = ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.