一般,将结构体传递给函数的方式有如下3种:
1. 用结构体的单个成员作为函数参数,向函数传递结构体的单个成员(属于传值调用,不会影响相应的实参结构体的值)
2. 用结构体变量做函数参数,向函数传递结构体完整结构(属于传值调用,不会影响相应的实参结构体的值)
3. 用结构体指针或结构体数组作函数参数属于按引用调用,会影响相应的实参结构体的值,向函数传递结构体地址,因为仅复制结构体首地址一个值给被调函数,相对于第二种方式,这种传递效率更高
通过结构体存储十个员工的个人信息,在通过冒泡排序对其工龄进行排序,最后输出:
(1)
#include <stdio.h>
#define N 4
struct worker
{
char num[7];
char name[11];
int year;
int salary;
};
void Sort(struct worker *p, int n);
int main(void)
{
struct worker work[N];
int i;
for ( i = 0; i < N; i++ )
{
printf("请输入第%d个工人信息:", i+1);
scanf("%s%s%d%d", work[i].num, work[i].name, &work[i].year, &work[i].salary)