Зачем в C существует оператор ->?
Зачем в C существует оператор ->? Классический вопрос на Stack Overflow, который рано или поздно задаёт каждый, кто пришёл в C из Python/JS. Короткий ответ: a->b — это просто синоним (*a).b. Если a — указатель на структуру, нам нужно сначала разыменовать его (*a), потом обратиться к полю (.b). Скобки обязательны из-за приоритета операторов. Чтобы каждый раз не писать (*a).b, Деннис Ритчи добавил сокращение. Чуть глубже: — Точка . работает на «обычной» структуре по значению. — Стрелка -> — только когда у тебя указатель на структуру. Pattern живёт и в C++ (operator->() у умных указателей), Rust (Box::deref), даже в Go. @prog_point (теперь ещё в VK и Max)