【C语言】结构体详解(一)

目录

1、什么是结构体?

2、结构体成分

3、结构体变量的定义与初始化

3.1、结构体变量的三种定义方式

3.2、结构体变量的初始化

4、结构体成员的访问(两种方式)

4.1、直接访问

4.2、间接访问

5、结构的特殊声明

5.1、不完全声明(匿名)



正文

1、什么是结构体?

先引入我们所熟悉的类型:char、short、int、long等等,这些是C语言提供的内置类型,但我们用单一的内置类型无法描述复杂的对象。

如,描述一个学生,需要描述其名字、年龄、性别、学号等;此时用单一类型是不够的。

为了解决这个问题,C语言增加了结构体这种自定义的数据类型,让程序员可以创造出合适的类型。

定义:

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针、或其他结构体。

结构体是用来描述一个复杂对象的,可包含多个属性。

2、结构体成分

请看一下代码:

struct student
{
	char name[20];//姓名
	int age;//年龄
	char sex[5];//性别
	char id[20];//学号
};

一个结构体中包含:结构体关键字、名字、成员、分号

3、 结构体变量的定义与初始化

3.1、结构体变量的三种定义方式

3.2、结构体变量的初始化

  • 按照结构体成员的顺序初始化

顾名思义,顺序初始化是按照结构体成员的顺序进行的初始化。

  • 乱序初始化

不按照结构体成员的顺序进行初始化,此时需要点明初始化的成员,如下:

.age 代表将年龄初始化为19 

.sex 代表将性别初始化为男

……

4、结构体成员的访问(两种方式)

结构成员访问操作符:.     ->

4.1、直接访问

通过点操作符(.)进行访问

使用方式:结构体变量.成员名

s5.name   :找到结构体变量s5中的成员name 

s5.age   :找到结构体变量s5中的成员age

……

 4.2、间接访问

通过箭头操作符(->)进行访问

使用方式:结构体指针->成员名

定义一个指向结构体的指针,p指向结构体变量s5

p->name  : 相当于 (*p).name

 p->age  : 相当于 (*p).age

5、结构的特殊声明

5.1、不完全声明(匿名)

 匿名的结构体类型,如果没有对结构体类型重命名的话,基本上只能使用一次。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 12:58:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 12:58:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 12:58:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 12:58:04       20 阅读

热门阅读

  1. 深入理解与使用go之函数与方法--泛型及堆栈

    2024-03-31 12:58:04       16 阅读
  2. 【AIGC】阿里云ecs部署stable diffusion

    2024-03-31 12:58:04       15 阅读
  3. Lua与Python区别

    2024-03-31 12:58:04       15 阅读
  4. 优先级队列(堆)

    2024-03-31 12:58:04       20 阅读
  5. 1100-采药

    2024-03-31 12:58:04       17 阅读
  6. 多线程和单线程相比,有哪些优势和劣势?

    2024-03-31 12:58:04       18 阅读
  7. @Controller与@RestController的区别

    2024-03-31 12:58:04       19 阅读