Bootstrap

【C语言】结构体传递给函数的方式的应用

一般,将结构体传递给函数的方式有如下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)
;