结构体-C语言

我们如果有个整型数据,可以定义个整型变量;如果要保存单个变量的的地址,可以定义个整型指针;如果有多个整型数据,可以定义个整型数组,一个数组也只能处理相同的数据类型。那如果我们要统计个人或事物的情况信息,那就会包含多种复杂不同的数据类型。

例如要把一个学生的所有情况信息放在一起,也就是把一个学生当做整体来看待。这时我们就需要一个东西把学生的各方面信息打包放在一起,这样我通过学生类型,就能定义一个学生的变量了。这样就比单个类型的变量或数组更方便处理,而这样定义一个学生的类型,就是结构体。类似于C++中的一个学生类class。

结构体,称为自定义数据类型,就是按照你自己的意愿(应用场景的需要,不同的应用场景即使是同一事物,关注的信息侧重点也不一样)来定义一个新的数据类型。

自定义数据类型有很多个,其中的一个也是最重要的就是结构体。

那么结构体怎么定义:

例如定义一个学生类型的结构体,将其的姓名和年龄信息打包在一起。一般来说按照编程命名规范,类型名的首字母要大写。

这个自定义类型和普通类型(系统自带的int  double 之类)的使用是一样的,普通类型能做的事自定义都能做。

那么普通基本类型能做什么呢:主要是下面三个事情角度

那么结构体也可以做这三件事

1.通过结构体定义普通变量

结构体普通变量通过.访问其成员

上面代码结构体定义出来的变量名叫a的变量就是如图所示。

那如果想将这个年龄修改为21,要怎么弄。 这就跟数组有区别了,数组是只有一个数组名,里面具体的每个格子是没有名字的,我们通过下标来区分数组的每个格子。        但结构体里面每个小的部分是有名字的,所以我们可以直接访问a这个变量说想把你的age改为21就可以了。

那么怎么访问并修改呢:

2.通过结构体定义指针

结构体指针变量通过指向符(->)访问其成员

结构体作为参数传递一定是传指针

那么哪些类型可以用在结构体里面呢

这个错误的原因就是程序是从上往下走的编译,出了struct A才能见到struct B,意味着在这个地方这个类型才可以用,那么在A里面bb就是没有见过的。就像我们要用一个变量a,那就要先在用之前就定义好一个a(例如int a;)。结构体也一样,先定义后使用。就像要先定义赋值后才能输出一样,先输出后赋值它咋可能知道你是啥值。

所以这样就可以了

链表里数据不连续的时候我们就把它的地址保存起来,通过指针访问地址找到下一个数据。

后面在文件系统里面,例如我有3个G的数据要存储,那就要求磁盘提供一个3个G的连续块才能存下。         但要是磁盘现在只剩下5个G的碎块不连续空间了,实际上系统也会让你分开存下去,然后系统文件会自动用一个线索把它串起来。等到你要用的时候,例如是存的一个电影,现在要播放,前一段的字节内容播放完了,后一段的字节内容跟它不在一起也没关系,它有一个线索能够找到另一段的地址,然后继续播放另一段就好了。               这样的存储形式(链式结构)更加灵活。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值