C 如何使结构保持我通过函数指定的值?

C 如何使结构保持我通过函数指定的值?,c,struct,pass-by-reference,function-declaration,C,Struct,Pass By Reference,Function Declaration,基本上,我试图通过一个函数为结构赋值,这样以后我在main()上赋值的值就相同了 结构 struct member{ char name; int age; }m1; 我试过这样做,值“age”被传递给str.age,但当我printf时,它返回0。您需要通过引用传递结构类型的对象 在C中,术语通过引用传递意味着通过指向对象的指针间接传递对象 所以函数可以看起来像 void assigntostruct( struct member *str, int age){ str-

基本上,我试图通过一个函数为结构赋值,这样以后我在main()上赋值的值就相同了

结构

struct member{
  char name;
  int age;
}m1;



我试过这样做,值“age”被传递给str.age,但当我printf时,它返回0。

您需要通过引用传递结构类型的对象

在C中,术语通过引用传递意味着通过指向对象的指针间接传递对象

所以函数可以看起来像

void assigntostruct( struct member *str, int age){
    str->age = age;
    //...
}
可以称之为

assigntostruct( &m1, age );
printf("%d", m1.age);

您至少缺少了
assigntostruct
的右括号。您可以发布至少可编译的代码吗?无需将
m1
传递给函数,因为它是在全局范围内声明的,可以从
assigntostruct()
访问它,只需使用
m1.age=age就完成了。
assigntostruct( &m1, age );
printf("%d", m1.age);