我正在尝试使用结构中的成员之一将其传递给计算函数()。该函数将为我的变量计算一个新值。你能告诉我我必须做什么才能将变量传递到我的主函数中吗?我还什么保留我的三个功能。谢谢
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
我的原型(prototype):
void calculations_using_struct_values(int i);
我的结构:
struct test
{
int x,y,z;
};
我的主要内容:
int main()
{
calculations_using_struct_values();
return 0;
}
初始化变量的值:
void struct_values()
{
test variable;
variable.x=50;
variable.y=100;
variable.z=150;
calculations_using_struct_values(variable.x);
return;
}
我将变量.x 存储到 i 中,以便该函数将其加 5:
void calculations_using_struct_values(int i)
{
int a=5;
i += a;
printf("%d\n",i);
return;
}
最佳答案
您的函数可以采用指向 int
的指针。
void calculations_using_struct_values(int *i)
{
int a=5;
*i += a;
}
并将结构体成员的地址传递给函数 (&
):
void struct_values()
{
//as before
calculations_using_struct_values(&variable.x);
}
或者,如果需要,您可以传递整个结构:
void calculations_using_struct_values(struct test *s)
{
int a=5;
s->x += a;
}
并将结构体的地址传递给函数 (&
):
void struct_values()
{
//as before
calculations_using_struct_values(&variable);
}
关于c - 将结构体成员传递给 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35892232/