以下代码返回"错误:请求成员' height'在一些不是结构或联合的东西中#34;我希望在调用bob
后doStuff
的高度从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;
}
答案 0 :(得分:2)
steve
是指向结构的指针,因此不是
steve.height = 5;
试
steve->height = 5;
或者更麻烦
(*steve).height = 5;
答案 1 :(得分:2)
结构指针使用中存在语法错误
你必须在doStuff
内使用这样的内容。因为史蒂夫在这里是指针变量。
steve->height = 5;
->
是结构解除引用运算符
.
是结构参考运算符