Как я могу прочитать поля, используя указатель на структуры в c? - PullRequest
1 голос
/ 27 мая 2019

Давайте рассмотрим следующий фрагмент кода на C:

#include <stdio.h>
#define SCORES 3

typedef struct struct_student{
       char name[16];
       float scores[SCORES];
       float average;
} STUDENT;

int main(){
    STUDENT student, *p;
    int i;
    p = &student;
    printf("Name:\n");
    gets((*p).name);
    for(i=0;i<SCORES;i++){
        printf("score:\n");
        scanf("%f", &(*p).scores[i] );
        (*p).average = (*p).average + (*p).scores[i];
    }
    (*p).average = (*p).average/SCORES ;
    printf("%s has average %f\n",student.name, student.average);
    return 0;
}

Работает хорошо. Но я думаю, что есть другой способ указать scanf:

scanf("%f", &(*p).scores[i] );

Я имею в виду. Это кажется слишком сложным. Я хотел бы знать, есть ли другой способ сделать это с помощью «точечной нотации». То есть я знаю, что есть «обозначение стрелки», которое намного проще. Но я думаю, что даже при использовании «точечной нотации» есть лучший способ сделать это. Обратите внимание, что я пытаюсь понять, как использовать «точечную нотацию», поэтому меня не интересуют решения с «стрелочной нотацией».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...