C - 通过引用函数来更改传递的结构的值

时间:2014-10-02 03:04:23

标签: c structure

以下代码返回"错误:请求成员' height'在一些不是结构或联合的东西中#34;我希望在调用bobdoStuff的高度从4变为5。谁能告诉我为什么这不起作用?谢谢!

#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;
}

2 个答案:

答案 0 :(得分:2)

steve是指向结构的指针,因此不是

steve.height = 5;

steve->height = 5;

或者更麻烦

(*steve).height = 5;

答案 1 :(得分:2)

结构指针使用中存在语法错误

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

 steve->height = 5;

->是结构解除引用运算符

.是结构参考运算符