c语言函数传入结构体数组 c语言向文件写入结构体数组

C语言结构体数组 的输入方式

C

10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有乐安免费网站建设让你可以放心的选择与我们合作。

语言中,结构体(struct)是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。

结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

定义与声明

结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。

在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。

在C语言中,定义结构体数组和定义结构体变量的方式类似;

例:

struct stu{

char*name;//姓名

int num;//学号

int age;//年龄

char group;//所在小组

float score;//成绩

}class[5];

表示一个班级有5个学生。

扩展资料:

结构体数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用for循环一个一个地使用结构体数组中的元素。

下面编写一个程序,编程要求:从键盘输入5个学生的基本信息,如姓名、年龄、性别、学号,然后将学号最大的学生的基本信息输出到屏幕。

#includelt;stdio.hgt;

#includelt;string.hgt;

struct STU

{

char name[20];

int age;

char sex;

char num[20];

};

void OutputSTU(struct STU stu[5]);

//函数声明,该函数的功能是输出学号最大的学生信息

int main(void)

{

int i;

struct STU stu[5];

for(i=0;ilt;5;++i)

{

printf("请输入第%d个学生的信息:",i+1);

scanf("%s%d%c%s",

stult;igt;.name,

stult;igt;

.age,stult;igt;

.sex,stult;

igt;.num);/*%c

前面要加空格,不然输入时会将空格赋给%c*/

}

OutputSTU(stu);

return 0;

}

void OutputSTU(struct STU stu[5])

{

struct STU stumax=stu[0];

int j;

for(j=1;jlt;5;++j)

{

if(strcmp(stumax.num,stu[j]

.num)lt;0)//strcmp函数的使用

{

stumax=stu[j];

}

}

printf("学生姓名:%s学生年龄:%d学生性别:%c学生学号:

%s\n",stumax.name,

stumax.age,stumax.

sex,stumax.num);

}

输出结果是:

请输入第1个学生的信息:小红22 F Z1207031

请输入第2个学生的信息:小明21 M Z1207035

请输入第3个学生的信息:小七23 F Z1207022

请输入第4个学生的信息:小欣20 F Z1207015

请输入第5个学生的信息:小天19 M Z1207024

学生姓名:小明学生年龄:21学生性别:M学生学号:Z1207035

参考资料:

百度百科——结构体

关于c语言中的结构体数组作为函数参数传递的

1、结构体数组传给指针,实质上是不可能的,本质上传的是数组首地址,根据偏移来操作数组,这样看起来好像是真在操作数组一样。就和普通指针一样使用,只不过它是结构体数组。

2、例程:

typedef struct Student

{

char name[10] ;

int age ;

}Student;

#define LEN 10 

//print all Student infomation

void fun(Student *pStu,int len)

{

int i ; 

for(i = 0 ;i  len ;++i)

{

printf("%s\t%d",pStu[i].name,pStu[i].age) ;

}

}

int main ()

{

Student stu[LEN] ;

fun(stu,LEN) ;

}

c语言中结构体数组传入函数

trans(node);                                       //改成trans(node);

void trans(struct linknode node[8])

{int o,i,m;

for(o=0;o8;o++)

{for(i=0;i2;i++)

{m=node[o].near[i];

for(i=0;i8;i++)

{if((node[m].dtc[i]+node[o].dtc[m])=node[o].dtc[i])

{node[o].dtc[i]=(node[m].dtc[i]+node[o].dtc[m]);

node[o].path[i]=m;

}

}

}

}

}

C语言:如何把自己定义的结构体数组传到调用函数

这是文件包含的问题,你把find函数也放到main.c文件里,就可以了,否则find函数不认识你定义的结构体


网页标题:c语言函数传入结构体数组 c语言向文件写入结构体数组
本文地址:http://scyanting.com/article/hjcopd.html