C - 通过引用函数传递的结构的值的变化
问题描述:
下面的代码返回一个“错误:在不是结构或联合的东西中对成员'高度'的请求”。 doStuff
被调用后,我希望bob
的高度从4更改为5。谁能告诉我为什么这不起作用?谢谢!C - 通过引用函数传递的结构的值的变化
#include <stdio.h>
#include <stdlib.h>
struct person{
int height;
int weight;
};
void doStuff(struct person *chris);
int main(){
struct person bob = {4,4};
doStuff(&bob);
printf("%d", bob.height);
return 0;
}
void doStuff(struct person *steve){
steve.height = 5;
}
答
steve
是指向的结构中,所以不是
steve.height = 5;
尝试
steve->height = 5;
或略偏更笨重
(*steve).height = 5;
答
有一个语法结构点中的错误三明治的用法
你必须在doStuff
里面这样使用。因为史蒂夫在这里是指针变量。
steve->height = 5;
->
是结构引用操作
.
是结构参考操作
这工作,但它的品牌新的给我,我可以得到运营商的名称,所以我可以做一个小的阅读?谢谢! – 2014-10-02 03:07:02
这是“结构解除引用”。 – AlexD 2014-10-02 03:09:47
非常感谢! – 2014-10-02 03:09:53