向函数传递结构体的方式有三种:
1、向函数传递结构体的单个成员:结构体的单个成员作为函数参数,相当于变量在函数之间的传递,仅仅复制单个成员的内容。(很少使用)。
2、用结构体变量作为函数参数,向函数传递结构的完整结构:实际是复制所有结构体成员给函数。调用函数的结果不影响主调函数的结构体成员的值。传递后的值不能改变结构体原始值。
用结构体变量作实参时,采取的是“值传递”方式,将结构体变量所占的内存单元的内容(结构体变量成员列表)全部顺序传递给形参,这里形参也得是结构体变量。
C语言允许对具有相同类型的结构体变量进行整体赋值,在赋值的时候是按照成员变量逐一的进行赋值。
#include <stdio.h>
typedef struct max //定义一个标签为max的结构体
{
int x;
int y;
int z;
}max;
int func(max s) //最大值函数,三目运算符,形参为max类型的s
{
s.z = s.x > s.y ? s.x:s.y;
return s.z;
}
int main()
{
max s = {0, 0 ,0}; //给结构体变量s赋值
s.x= 1; //修改结构体变量s中的成员x变量的值
printf("%d = %d > %d ? %d : %d ",