Порядок операций для разыменования и скобочного ref в C

Если я сделаю * ptr [x] , это эквивалентно * (ptr [x ]) или (* ptr) [x] ?

16
задан Claudiu 24 August 2010 в 01:00
поделиться

3 ответа

*(ptr[x])

См. таблицу старшинства операторов Википедии, или, для более подробной таблицы, эту таблицу для C/C++.

14
ответ дан 30 November 2019 в 22:17
поделиться

Используя движение против часовой стрелки при анализе и разборе этого простого примера

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])

-2
ответ дан 30 November 2019 в 22:17
поделиться

В C все постфиксные операторы имеют более высокий приоритет, чем префиксные операторы, а префиксные операторы имеют более высокий приоритет, чем инфиксные операторы. Итак, это * (ptr [x])

8
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: