怎么在函数中给结构体数组赋值

在main函数中创建一个结构体数组,要在另一个子函数中给它赋值,怎么办?

#include <stdio.h>

//外部声明,可以直接调用
struct test1
{
int x;
int y;
};

void fun(int *x,int *y)
{
*x = 1;
*y = 2;
}

//直接用struct test1进行传人
void fun1(struct test1 *tt)
{
tt->x = 11;
tt->y = 22;
}

void main(void)
{
int i;

//使用外部结构体声明数组
struct test1 tt[3];

//内部定义一个结构体
struct test
{
int x;
int y;
}t[3];//3个元素的结构数组

//执行函数fun,进行赋值
for(i = 0;i < 3;i++)
fun(&t[i].x,&t[i].y);

//输出显示
for(i = 0;i < 3;i++)
printf("t[%d].x=%d,t[%d].y=%d\n",i,t[i].x,i,t[i].y);

//执行函数fun1,进行赋值
for(i = 0;i < 3;i++)
fun1(&tt[i]);

//输出显示
for(i = 0;i < 3;i++)
printf("tt[%d].x=%d,tt[%d].y=%d\n",i,tt[i].x,i,tt[i].y);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-27
和普通数据类型的定义相似,
赋值可以采用传址的方法。
相似回答