Если я делаю *ptr[x], это эквивалентно *(ptr[x]) или (*ptr)[x]?
Порядок операций для разыменования и скобки-ref в C
Ответ 1
*(ptr[x])
Смотрите таблицу приоритетов в Википедии, или, для более подробной таблицы, эту специфическую таблицу C/С++.
Ответ 2
В C все операторы постфикса имеют более высокий приоритет, чем префиксные операторы, а префиксные операторы имеют более высокий приоритет, чем операторы infix. Таким образом, его *(ptr[x])
Ответ 3
Использование движения против часовой стрелки для анализа и анализа этого простого примера
1. starting with ptr, work in counter-clockwise until you hit asterisk operator 2. asterisk, in counter-clockwise until you hit subscript operator 3. we arrive here, at subscript operator [x]
Так как [] имеет более высокий приоритет, чем звездочка в соответствии с этим table, это делает его *(ptr[x])