结构体类型

1. 结构体是一种自定义的数据类型,也是用来存储多个数据的大容器,只不过结构体要比数组灵活,它可以存储不同类型的数据

2.结构体定义:struct + 结构体名字{大括号中填写结构体成员,多个结构体成员之间通过分号进行间隔} +;(分号必不可少)

如:定义一个学生结构体

struct student {
           //结构体成员
    int number;          //存储学号
    char sex ;             //存储性别
};//分号是结构体定义的结束标志,必不可少

3.结构类型重定义要用typedef.

(1) 

第一种格式,先定义结构体类型,然后在typedef   如
   struct point{    //点结构体
    float x;     //存储横坐标
    float y;     //存储纵坐标
};
typedef struct point point ;

(2)

 第二种格式,定义结构体的同时,在typedef  如
typedef struct student {
   //结构体成员

   char name[20];          //存储姓名
    char sex ;             //存储性别

   int number;          //存储学号
}stu;

4.结构体变量的定义

  结构体类型= struct + 结构体的名字

结构体变量访问结构体成员的方式,通过结构体变量.结构体成员  stu.number;

结构体变量可以直接赋值.如:

stu xiao = {"xiaocji",'f',10};

stu  mm = {0};

 mm = xiao;

下面是一个列子:

 stu stu1 = {"xiaowu",'f',20};
    s
tu stu2 = {"liuzi",'m',100};
    s
tu stu3 = { "wangwu" ,'f',11};
    s
tu maxScore  = {0}; //存储分数最高者
    s
tu minAge = {0};  //存储年龄最小者
    
1.先找出两个人中分数最高者
    maxScore = stu1.score > stu2.score ? stu1 : stu2;
   
2.在找出分数最高者 和 第三个人中的分数最高者
    maxScore = maxScore.score > stu3.score ? maxScore :stu3;
    
1.先找到前两个人中年龄最小者
   minAge = stu1.age < stu2.age ? stu1 : stu2;
   
2.在找到年龄最小者和第三人中,年龄最小者
   minAge = minAge.age < stu3.age ? minAge : stu3;
   printf(
"%s  %s",maxScore.name,minAge.name);

这个例子就是能很好的体现:结构体可以直接赋值.

5.结构体嵌套

//定义学生结构体
typedef   struct  birthday{
    
int  year;     //存储年份
    
int  month;    //存储月份
    
int  day;      //存储天数
}Birthday;
//结构体嵌套,在一个结构体中的结构体成员是另一个结构体类型的变量
typedef   struct  stu{
    
char  name[ 20 ]; //存储学生姓名
    
char  sex ; //存储学生性别
    
int  age ; //存储学生年龄
    
float  score;   //存储学生分数
    
Birthday  birth;  //出生日期
}Stu;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值