Sco*_*S. 1 c parameters struct function
StackOverflow的新手,C的新手.我试图将一个struct作为函数'add_fields'中的一个参数,它将前两个int字段'a'和'b'相加,并将结果放在int字段'c'中.没有得到编译器的任何东西,所以很明显我做错了.我只是不知道是什么.任何帮助,将不胜感激.
#include <stdio.h>
struct add{
int a;
int b;
int c;
}
void add_fields(struct add *d){
d->c = a + b;
}
main(){
struct add data;
data.a = 1;
data.b = 2;
data.c = 0;
add_fields(data);
printf("%d + %d = %d", data.a, data.b, data.c);
}
Run Code Online (Sandbox Code Playgroud)
你很接近,但变量a并b在这方面不存在,而你需要通过指针结构来访问字段d:
d->c = d->a + d->b;
Run Code Online (Sandbox Code Playgroud)
其次,add_fields在调用时需要传递对结构的引用(因为需要一个指针)add_fields:
add_fields(&data);
Run Code Online (Sandbox Code Playgroud)
在&表明你要传递变量的地址data而不是值.