По доступу к элементам структуры по адресу или значению - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В продолжение моей прошлой темы про функцию malloc, создал новую тему, опасаясь, что туда уже никто не заглянет. Более менее разобрался с этой темой, есть такой рабочий код:
Листинг программы
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. typedef struct
  5. {
  6. char last_name[32];
  7. int grade[3];
  8. }student;
  9. int main()
  10. {
  11. student *group = malloc(sizeof (student) * 20);
  12. strcpy(group->last_name, "Kim");
  13. group->grade[0] = 5; group->grade[1] = 4; group->grade[2] = 3;
  14. strcpy(group[1].last_name, "Petya");
  15. group[1].grade[0] = 3; group[1].grade[1] = 4; group[1].grade[2] = 3;
  16. printf("%s\n",group[1].last_name);
  17. }
Интересует такой вопрос, какая принципиальная разница здесь при обращении к элементам структуры через -> или . ?

Решение задачи: «По доступу к элементам структуры по адресу или значению»

textual
Листинг программы
  1. a->b == (*a).b

Объяснение кода листинга программы

В данном коде сравниваются указатель a и значение, которое он указывает, с переменной b.

  1. a - указатель на структуру или переменную
  2. b - переменная, содержащая значение, доступ к которому осуществляется по значению или адресу Выполняется проверка на равенство указателя a и значения переменной b. Результат этой проверки сохраняется в переменной, которая не указана в данном фрагменте кода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы