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

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

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

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

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

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

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

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

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

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


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

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

13   голосов , оценка 4.077 из 5
Похожие ответы