结构体

前言

结构体主要用于数据类型多或者变量多的场合,比如最近在学stm32,那些寄存器就可以构成一个结构体,以后就可以操作结构体来操作寄存器,还有,比如要登记一个学生的信息,有姓名char型,学号int型,这些情况就需要用到结构体了。

数据类型创建

比如int整型,这个是已经创建好的数据类型。
在这里我们要创建我们自己的数据类型,创建一个结构体

结构体类型创建

struct student
{
int number;
char *name;
char sex;
};

这里可以看到我们创建了一个student类型的结构体,int类型的成员是不是就是整形,而我创建的结构体类型其成员有number,到时候可以存学号,再比如name这个成员到时候就可以存名字,sex性别。

定义

这里的struct是一个关键字,用来构建自己结构类型的关键字,不像int是一个类型,所以后面我们就可以把struct student整体当成int来看。

int类型的定义

int a;

定义了一个int整形类型的变量,变量名为a。

结构体定义一(常规定义):

struct student pupil1;

定义了一个stuct student结构体类型的变量,变量名为pupil1。

这一种定义可以说是与其他类型没有区别。

结构体初定义二(简便定义):

struct student
{
int number;
char *name;
char sex;
}pupil1;

构建结构体的时候定义。

结构体定义三(特殊定义):

struct
{
int number;
char *name;
char sex;
}pupil1;

这个没有名字的结构体叫做匿名结构体,你只能在结构体构建的时候给它定义,再后面你不能像struct student pupil1;这样来定义结构体变量了,这适用于特殊结构体。

赋值

结构体赋值和数组赋值相似。
数组赋值

int a[]={1,2,3};

结构体常规定义赋值

struct student pupil1={1,“lellansin”,‘m’};

简便定义赋值

struct student
{
int number;
char *name;
char sex;
}pupil1={1,“lellansin”,‘m’};

特殊定义赋值同简便定义

上面都是根据数组的简便赋值,还有其对应的单个数据赋值
数组单个数据赋值

a[0]=1;
a[1]=2;
a[2]=3;

结构体当个数据赋值

pupil1.number=1;
pupil1.name=“lellansin”;
pupil1.sex=‘m’;

结构体数组

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结构体指针

在这里插入图片描述
在这里插入图片描述
其常见错误
在这里插入图片描述
描述就是不能把一个结构体字符数组装换为一个装换为一个结构体指针。
解决办法,强制装换
在这里插入图片描述
在这里插入图片描述

结构体作为参数和返回值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结构体函数
在这里插入图片描述
在这里插入图片描述
好的,其实理解结构体就是找其他变量进行比对。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值