2024年8月1日嵌入式学习

今日主要学习了结构体与链表

结构体

定义结构体类型的方法

1.先声明结构体类型再定义变量名

定义了一个结构体类型 struct student,可以用它来定义变量。

2.在声明类型的同时定义变量

例如

3.直接定义结构体类型变量

注意

(1)类型与变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。

(2)对结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。
(3)成员也可以是一个结构体变量

(4)成员名可以与程序中的变量名相同,二者不代表同一对象。例如,程序中可以另定义一个变量 num,它与 struct student 中的 num是两回事,互不干扰。

在定义的时候我们可以只初始化一个,而其他的成员则为0;

在定义结构体是会有结构体对齐

在系统内,计算机会为了代码的读取等提高效率,会将变量等四个四个一读,而在存放时也会特意在地址能被4整除的地址存放首个元素,若是出现在定义结构体中出现先定义short,后定义int,则结构体的字节为8,首个short为2字节,而int为4字节,计算机不会把int型变量直接存在short后面,而是在往后2个字节在存放,为的是提高读取效率,而float,double等存放时,都会按照自己的字节数进行存放,在能被自己字节数整除的地址存放。,而对于数组,则是直接会按照其基类型对齐,例如char 【100】; 存放时只需存在能被1整除的地址,也就是哪里都可以。

 结构体变量的引用

(1)不能将一个结构体变量作为一个整体进行输入和输出

(2)如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员。只能对最低级的成员进行赋值或存取以及运算。

(3)对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。

(4)可以引用结构体变量成员的地址,也可以引用结构体变量的地址

结构体变量的初始化

和其他类型变量一样,对结构体变量可以在定义时指定初始值

结构体数组

定义结构体数组

例如

结构体数组初始化

例如

指向结构体类型数据的指针

有三种形式

结构体变量.成员名

(*p).成员名

P->成员名

指向结构体数组的指针

注意

(1)如果p的初值为stu,即指向第一个元素,则1后p就指向下一个元素

用结构体变量和指向结构体的指针作函数参数

(1)用结构体变量的成员作参数。

(2)用结构体变量作实参。用结构体变量作实参时,采取的也是“值传递”的方式,将结构体变量所占的内存单元的内容全部顺序传递给形参,形参也必须是同类型的结构体变量。在函数调用期间形参也要占用内存单元。

(3)用指向结构体变量(或数组)的指针作实参,将结构体变量(或数组)的地址传给形参。

用指针来处理链表

链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。

建立一个链表

对这个空链表进行头插

链表的打印

计算链表里的节点

判断链表是否为空

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值