以具体代码为例,详解结构体类型定义,变量定义,变量引用,变量传输
#include<stdio.h>
typedef struct birth{
int year;
int month;
int day;
}birth;//定义一个以birth为类型名的结构体,并且定义对应变量为birth
typedef struct Stu{
int age;
char* sex;
int score;
birth bir;
}Stu;//定义一个以Stu为类型名的结构体,并且定义对应变量为Stu
void prin(Stu stu){
printf("%d,%s,%d",stu.age,stu.sex,stu.score);
}定义一个函数,将Stu类型结构体变量stu传入,并且打印stu变量各参数值
void prin2(Stu *p,int len){
for(int i=0;i<len;i++){
printf("%d,%s,%d",(p+i)->age,(p+i)->sex,(p+i)->score);}
}/定义一个函数,将指针变量,长度整型变量传递,并打印指针变量所指结构体参数
int main(){
Stu students[]{{22,"男",100,{2001,03,20}},{22,"男",100,{2001,03,20}},{22,"男",100,{2001,03,20}}};//定义一个Stu类型结构体数组,数组基本元素为结构体变量
Stu stu1={22,"男",100,{2001,03,20}};
Stu *p= &stu1;定义一个Stu类型指针变量,并将stu1结构体地址传递
prin2(students,2);
}
结构体定义方式
struct 结构体类型名{具体参数},这里定义只是给出声明,并未分配内存,没有真正定义变量
结构体类型名 结构体变量名{}
结构体变量引用,使用结构体名+.作引用
结构体指针变量,结构体类型名*指针变量名=&结构体变量名,可将结构体变量对应地址赋给指针变量