Если я сделаю * ptr [x]
, это эквивалентно * (ptr [x ])
или (* ptr) [x]
?
*(ptr[x])
См. таблицу старшинства операторов Википедии, или, для более подробной таблицы, эту таблицу для C/C++.
Используя движение против часовой стрелки при анализе и разборе этого простого примера
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]
Поскольку []
имеет более высокий приоритет, чем звездочка, согласно этой таблице, это делает *(ptr[x])
В C все постфиксные операторы имеют более высокий приоритет, чем префиксные операторы, а префиксные операторы имеют более высокий приоритет, чем инфиксные операторы. Итак, это * (ptr [x])