По доступу к элементам структуры по адресу или значению - 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
.
a
- указатель на структуру или переменнуюb
- переменная, содержащая значение, доступ к которому осуществляется по значению или адресу Выполняется проверка на равенство указателяa
и значения переменнойb
. Результат этой проверки сохраняется в переменной, которая не указана в данном фрагменте кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д