В языке программирования C операторы "." и "->" используются для доступа к элементам структур. Они отличаются в зависимости от того, каким образом доступ осуществляется.
Оператор "." используется для доступа к элементу структуры, когда сама структура доступна непосредственно. В этом случае, чтобы получить значение элемента структуры, мы используем оператор "." и указываем имя элемента. Например:
struct Point { int x; int y; }; struct Point p; p.x = 5; p.y = 10;
В данном примере мы создаем структуру Point, которая содержит два элемента x и y. Затем мы создаем переменную p типа Point и присваиваем значения x=5 и y=10. Для доступа к элементам структуры мы использовали оператор ".".
Оператор "->" используется для доступа к элементам структуры, когда доступ осуществляется через указатель на структуру. В этом случае, чтобы получить значение элемента структуры, мы используем оператор "->" и указываем имя элемента. Например:
struct Point { int x; int y; }; struct Point p; struct Point *ptr = &p; ptr->x = 5; ptr->y = 10;
В данном примере мы создаем структуру Point и переменную ptr, которая является указателем на структуру Point. Затем мы присваиваем ptr адрес переменной p. Для доступа к элементам структуры через указатель мы используем оператор "->".
Таким образом, основное отличие между операторами "." и "->" заключается в том, каким образом обращение к элементам структуры осуществляется: через саму структуру (используя "."), или через указатель на структуру (используя "->").