Информация об изменениях

Сообщение Re[7]: Операторы точка и стрелка от 11.02.2022 4:19

Изменено 11.02.2022 4:20 andrey.desman

Re[7]: Операторы точка и стрелка
Здравствуйте, netch80, Вы писали:

N>Поэтому, если было какое-то удобство, которое привело к его сохранению, то это, скорее всего, удобство понимания отличия непосредственного значения в переменной от указателя — для человека.

N>Вот было ли это удобство и в чём точно оно заключалось, или просто не совершили объединение — исходный вопрос.

В Си нет ссылок, поэтому в нем такие записи однозначно говорят о том, что происходит.
С точками понятно, что имеем просто доступ к какому-то подчлену структуры:
a.b.c.d; // == *(&a + offset)


А со стрелками понятно, что там последовательность косвенных обращений, что дороже:
a->b->c->d; // == *(*(*(*a + offset1) + offset2) + offset3)
Re[7]: Операторы точка и стрелка
Здравствуйте, netch80, Вы писали:

N>Поэтому, если было какое-то удобство, которое привело к его сохранению, то это, скорее всего, удобство понимания отличия непосредственного значения в переменной от указателя — для человека.

N>Вот было ли это удобство и в чём точно оно заключалось, или просто не совершили объединение — исходный вопрос.

В Си нет ссылок, поэтому в нем такие записи однозначно говорят о том, что происходит.
С точками понятно, что имеем просто доступ к какому-то подчлену структуры:
a.b.c.d; // == *(&a + offset)


А со стрелками понятно, что там последовательность косвенных обращений, что дороже:
a->b->c->d; // == *(*(*(a + offset1) + offset2) + offset3)