obj.a[b]
В компьютерах есть побочные эффекты и желание сделать поменьше промежуточной памяти, потому приоритет и ассоциативность служат только для расстановки неявных скобок — а порядок вычисления прост: «сначала левая часть, потом правая» (для некоторых операций наоборот).
Вот это утверждение неверно.
int func(int x) {
cout << x << endl; // 0
return x;
}
int main()
{
int i = 1;
cout << --i + func(i); // 0
return 0;
}
jsfiddle.net