Приоритет операторов C++ «&» и «->»
-
03-07-2019 - |
Вопрос
Учитывая следующее:
&row->count
Будет ли оцениваться &(row->count) или (&row)->count в C++?
РЕДАКТИРОВАТЬ:Вот отличный связь для приоритета C++.
Решение
Другие советы
Что касается правил приоритета, мне всегда нравилось правило, предложенное Стивом Уаллином в «Практическом C»:
В C существует правила приоритета пятнадцати приоритетов (&& приходит раньше ||Практический программист уменьшает их до двух:
1) Умножение и деление приходят перед добавлением и вычитанием.
2) Поместите скобки вокруг всего остального.
Могу ли я предложить вам решить подобные вопросы с помощью тестовой программы?Преимущество этого заключается в том, что вы будете точно знать, что ответ правильный для вашей реализации, и вы не подвергаетесь риску получения неправильного ответа на вопросы.
Объяснение приоритета операторов C здесь
Согласно таблице, -> имеет более высокий приоритет, чем оператор &, поэтому это &(row->count).
&(строка->количество)
-> имеет более высокий приоритет, чем & (адрес).Таким образом, ваше выражение будет оценено как &(row->count)