Может ли кто-нибудь объяснить приоритет оператора, который имеет место в следующем выражении C++?Приоритет оператора C++
int lower = height[height[l] < height[r] ? l++ : r--];
Предположим, height=[0,1,0,2,1,0,1,3,2,1,2,1]
и int l = 0, r = height.size()-1;
. В соответствии с моим пониманием сначала оценивается height[l] < height[r]?
, а затем l++
или r--
в качестве примера может быть (l++
в этом случае). Затем значение height[updated l]
должно быть присвоено lower
. Таким образом, lower
должен быть 1
; но на выходе указано, что это 0
. Как? Каков был бы правильный порядок оценки заявлений?
Спасибо. Не могли бы вы сообщить мне полный порядок оценки выражения 'int lower = height [height [l]
@ user6490375 Заказ указан, как вы заявили, но вы получили неправильный приращение. –
Обратите внимание, что значение 'l ++' не определяется приоритетом оператора. Это просто определено так. – EJP