Каковы официальные названия операторов *
и &
в контексте указателей? Похоже, их часто называют оператором разыменования и оператор адресации соответственно, но, к сожалению, в разделе об унарных операторах в стандарте их нет.
Я действительно больше не хочу называть &
address-of , потому что &
возвращает указатель, а не адрес. (см. ниже) Стандарт очень четко говорит об этом:
Результатом унарного оператора &
является указатель на его операнд.
Симметрия предлагает назвать &
оператор ссылки , что несколько неудачно из-за конфликта со ссылками в C ++. Тот факт, что &
возвращает указатель, предполагает оператор указателя . Существуют ли официальные источники, которые подтвердили бы эти (или другие) наименования?
указатели против адресов
Указатель - это языковой механизм, а адрес - деталь реализации. Адреса не набираются, а указатели - нет, за исключением void*
. Кевлин Хенни также различает указатели и адреса в Интервью :
C [...] позволяет нам абстрагировать особенности машины до такой степени, что мы говорим об указателях, а не об адресах. Существует целый груз боли, через который вам больше не нужно проходить.