Оператор Arrow (->) использование в C

Я читаю, книга, названная ", Преподают Себе C за 21 День" (я уже изучил Java и C#, таким образом, я перемещаюсь в намного более быстрый темп). Я читал главу по указателям и -> (стрелка) оператор подошла без объяснения. Я думаю, что это используется для вызова участников и функций (как эквивалент . (точечный) оператор, но для указателей вместо участников). Но я не совсем уверен.

Я мог получить объяснение и пример кода?

244
задан Flimzy 23 September 2019 в 02:29
поделиться

4 ответа

foo-> bar эквивалентно (* foo) .bar , то есть получает член с именем bar из структуры, на которую указывает foo .

436
ответ дан 23 November 2019 в 03:07
поделиться

a-> b - это просто сокращение от (* a) .b во всех смыслах (то же самое для функций: a-> b () - это сокращение от (* a) .b () ).

31
ответ дан 23 November 2019 в 03:07
поделиться

Да, вот и все.

Это просто точечная версия, когда вы хотите получить доступ к элементам структуры / класса, которые являются указателем, а не ссылкой.

struct foo
{
  int x;
  float y;
};

struct foo var;
struct foo* pvar;
pvar = malloc(sizeof(pvar));

var.x = 5;
(&var)->y = 14.3;
pvar->y = 22.4;
(*pvar).x = 6;

Вот и все!

118
ответ дан 23 November 2019 в 03:07
поделиться

foo-> bar - это только сокращение для (* foo) .bar . Вот и все.

19
ответ дан 23 November 2019 в 03:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: