有没有一种方法可以在for循环中更新结构成员,所以我想避免必须一个接一个地更新成员。例如:
代替这样做:
void Update(int vaule,struct Coolstruct *Ice)
{
int vaule;
Ice->member1=vaule;
Ice->member2=vaule;
Ice->member3=vaule;
Ice->member4=vaule;
}
我想知道是否可能与此(伪代码)类似:
void Update(int vaule,struct Coolstruct *Ice)
{
int vaule;
for(int i=0;i++;i<4)
{
Ice->i =vaule
}
}
答案 0 :(得分:1)
是的,有可能。
但是您需要在结构Coolstruct
内放置一个对象数组,而不是定义多个单个对象。
这里是一个例子:
#include <stdio.h>
struct Coolstruct {
int b[4];
};
void Update(int vaule, struct Coolstruct *Ice)
{
for(int i=0;i<4;i++)
{
Ice->b[i] = vaule;
}
return;
}
int main(void) {
struct Coolstruct x;
int y = 25;
Update(y, &x);
for(int i = 0; i < 4; i++)
{
printf("x.b[%d] = %d\n", i, x.b[i]);
}
return 0;
}
输出:
x.b[0] = 25
x.b[1] = 25
x.b[2] = 25
x.b[3] = 25