Я обсуждал тему ассоциативности операторов C.
Там я столкнулся с этим фактом, что оператор вызова функции ()
имеет ассоциативность слева направо. Но ассоциативность возникает только тогда, когда в выражении происходят несколько операторов с одинаковым приоритетом. Но я не мог найти ни одного примера, включающего оператор вызова функций, где важна роль ассоциативности.
Например, в выражении a = f(x) + g(x);
результат зависит от порядка оценки, а не от ассоциативности двух вызовов функций.
Аналогично, вызов f(g(x))
сначала оценит функцию g()
, а затем функцию f()
. Здесь у нас есть вложенный вызов функции, и снова ассоциативность не играет никакой роли.
Другие операторы C в этой группе приоритетов представляют собой индекс массива []
, postfix ++
и postfix --
. Но я не мог найти примеров, связанных с комбинацией этих операторов с ()
, где ассоциативность играет роль в оценке выражений.
Итак, мой вопрос: определяет ли ассоциативность вызова функции как слева направо, какое-либо выражение в C? Может ли кто-нибудь представить пример, когда ассоциативность оператора вызова функции ()
имеет значение при оценке выражения?