Символ "->", что он означает? - C (СИ)
Формулировка задачи:
символ -> что он означает
Решение задачи: «Символ "->", что он означает?»
textual
Листинг программы
typedef struct foo foo_t;
typedef foo_t* foo_ptr;
struct foo {
int field1;
int field2;
};
void
initUsingArrow (foo_ptr data)
{
data->field1 = 0;
data->field2 = 1;
}
void
initUsingAsterisk (foo_ptr data)
{
(*data).field1 = 1;
(*data).field2 = 0;
}
Объяснение кода листинга программы
- В первых двух строках объявляются два указателя:
foo_t*иfoo_ptr. - Далее, в третьей строке, определена структура
foo_tс двумя полями типаint:field1иfield2. - В функции
initUsingArrowпервые две строки используют оператор->для доступа к полям структуры, которая передается в качестве аргумента. - В функции
initUsingAsteriskпервые две строки используют оператор*для доступа к полям структуры, которая передается в качестве аргумента.