我查看了thisthis以及thisthis等。

问题是:

EdX上的基本C编程MOOC显示了当指针传递结构时如何访问函数中结构的成员。 他们为什么在世界上使用&旁边的*

他们显示:scanf("%lf", &(*studptr).aveGrade);
为什么不只在scanf中使用studptr.aveGrade

(撇开单独的问题“为什么要完全使用scanf”)

(要求提供完整的示例)

void readStudent(struct student *studptr) {
    print("\nEnter a new student record: \n");
    printf("First name: ");
    scanf("%s", (*studptr).firstName);
    printf("Last name: ");
    scanf("%s", (*studptr).lastName);
    printf("Birth year: ");
    scanf("%d", &(*studptr).birthYear);
    printf("Average grade: ");
    scanf("%lf", &(*studptr).aveGrade);
}

最佳答案

因为&不引用(*stupdtr),所以它引用了(*studptr).aveGrade.运算符具有更高的优先级。

10-07 20:34