我查看了this和this以及this和this等。
问题是:
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
。 .
运算符具有更高的优先级。