C 如何使结构保持我通过函数指定的值?
基本上,我试图通过一个函数为结构赋值,这样以后我在main()上赋值的值就相同了 结构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-
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);