只是试图在这里解决一个概念上的问题。在教科书中的此示例中,它尝试通过引用地址将结构的地址传递给以下函数。
在我看来,我假设自从传递“&address”以来,我将不得不在函数内取消引用以使用struct操作,例如这样
(*planet)->name;
,更糟糕的是,他们在函数中使用“&planet”,这是否会像
&(&planet)
在我看来,就像他们在结构的地址上使用结构运算符一样,而不是结构本身。
if (read_planet_ptr(&planet) != EOF) {
...
int read_planet_ptr(planet_t *planet) {
int nvals_read;
printf("Enter %s:\n", PLANETPROMPT);
nvals_read = scanf("%s %s %lf %lf %lf",
planet->name,
planet->orbits,
&planet->distance,
&planet->mass,
&planet->radius);
if (nvals_read != 5) {
return EOF;
} else {
return 0;
}
}
任何帮助都将不胜感激
最佳答案
&planet->distance
实际上被评估为&(planet->distance)
,因此意味着获取结构成员的地址,scanf()
要求使用输入值更新该成员。
关于c - C-将结构地址作为函数参数传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24922337/