C 结构体的定义和使用

2018年12月26日Otstar Lin

应同学请求更新了这篇文章,正好没有水文的借口 (逃

1.前言

在C语言中结构体指一种数据结构,是C语言中复合数据类型,结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的类型,成员一般用名字访问。

与Java中的类类似一个结构体看可以看作是一个类别,某类事物的集合体,比如要表示一本书的各种属性(作者,页数,出版时间等),在没有使用结构体的时候,就需要使用各种基本数据类型进行存储,这时会发现在表示数据的时候乱七八糟的,调用的时候也不容易调用,但如果使用了结构体,那结构体名称就可以使用书名表示,书的各种属性就可以放在结构体中,在使用的时候可以很直观的用结构体名称(书名)调用

2.实践

定义结构

在使用结构体的时候需要定义结构体,可以不先定义结构体变量,但必须先定义好结构体的结构

  • tag : 结构体的标志,可以不设置,但是如果不设置就必须在定义时声明variable-list,一般使用全大写表示,建议每个结构体都要有tag
  • member-list : 结构中的成员,在定义的时候必须定义结构体中的所有成员
  • variable-list : 结构体变量列表,若不声明就必须要有tag,可以声明多个,使用逗号隔开,也可声明结构体数组

定义时也可以使用typedef来创建一个数据类型,下面会针对这两种定义方式进行分析

嵌套结构体

 

声明结构体变量

结构体变量可以紧跟结构体后创建,不过由于结构体在函数外创建,所以紧跟结构体后声明的结构体变量是全局变量

还有一种是在函数中创建

使用typedef的创建

创建结构体指针

访问结构体成员

创建好了结构体变量后才能进行访问

3.结语

结构体是C语言和多种类C语言中的一种数据结构,在Golang,C#,C++都有结构体,但是除了Golang,其它两种语言都支持面向对象,所以一般很少用到,但是在C中它是非常重要的,。。。。。。。。。编不下去了( ̄▽ ̄)”  (逃

说点什么

您将是第一位评论人!

avatar
  Subscribe订阅  
提醒
Prev Post Next Post