C - 通过引用函数传递的结构的值的变化

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; 
+0

这工作,但它的品牌新的给我,我可以得到运营商的名称,所以我可以做一个小的阅读?谢谢! – 2014-10-02 03:07:02

+0

这是“结构解除引用”。 – AlexD 2014-10-02 03:09:47

+0

非常感谢! – 2014-10-02 03:09:53

有一个语法结构点中的错误三明治的用法

你必须在doStuff里面这样使用。因为史蒂夫在这里是指针变量。

steve->height = 5; 

->是结构引用操作

.是结构参考操作