TGViewer
Точка входа в программирование Точка входа в программирование @prog_point · 18K subscribers
Post #4929 1.37K
Зачем в 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)
  • ❤ 3
More from @prog_point
  1. Oct 8, 2026Практика HTML и CSS: карточка товара и адаптивная галерея Соберите карточку с изображением…
  2. Oct 8, 2026Как начать отладку Python-кода в PyCharm Вместо очередного print() можно приостановить про…
  3. Oct 7, 2026Меньше работы для браузера: content-visibility на длинных страницах Карточки далеко за пре…
  4. Oct 7, 2026Как собрать счётчик слов на HTML, CSS и JavaScript Сделайте страницу, которая пересчитывае…
  5. Oct 6, 2026Собираем счётчик кликов на JavaScript Счётчик с одной кнопкой помогает увидеть базовый цик…
  6. Oct 6, 2026Соберите кнопку и карточку с CSS-градиентами Начните с двух небольших элементов: задайте к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →