数据结构之线性表的基本C语言语法

一开始没做笔记,大家想看的话可以参考这里

博客主要是观看青岛大学-王卓老师的视频时的总结或者个人笔记。

基础知识补充

元素类型说明

在这里插入图片描述
这里ElemType代表你到data的类型,比如int float char等等

如果不想换可以提前声明,比如用typedef char ElemType这样就代表这个 ElemType是一个字符型。

如果我们需要的是一个结构体变量,则可以这样
在这里插入图片描述
这个结构体中一个是float型到p 还有一个int型的e,这里就用里Polynomial来作为这个结构体的类型,下面就用Polynomial来指明其类型

数组定义

在这里插入图片描述
第一个中,data[MaxSize]中存放的是第一个元素的地址,也就是首地址,当然也可以直接定义一个指针变量,进行动态分配

在这里插入图片描述
这里是先定义了个线性表L,再用内存分配函数对其进行内容的分配。

C语言的内存动态分配

在这里插入图片描述
malloc的括号里,sizeof(ElemType)是计算了ElemType的字节数,如int就是4个字节,char就是1个字节,然后乘个maxsize代表开辟的空间。比如就是int型的变量,maxsize是200,这样就开辟了800个空间地址,然后其那面的类型是int,也就是800个地址,4个一组分成了200组。
注意,(Elemtype *)这个括号是强制类型转换运算,前面那个 ** 号 **因为分配好的结果是个指针,所以进去也要是指针,所以代表的指针,后面那个号就是乘的意思了
在这里插入图片描述

c++的动态储存分配

new就是分配空间,
在这里插入图片描述
在这里插入图片描述

c++中的参数传递

在这里插入图片描述
在这里插入图片描述
这里比如a=1 b=2然后传入函数,但只是函数中 m n的值变化了,a b的值没有变化
下面这个a b的数值就交换了
在这里插入图片描述
这里传入swap函数的是a和b的地址也就是p1,p2,进入后*m就代表a的值,*n是b的值,*m *n交换了,也就是a b的值交换了,所以数值改变了
在这里插入图片描述
这里传进去的依然是a和b的地址,但m代表的是a的地址,n代表的是b的地址,在函数中,m指向了b的地址,n指向了a的地址,所以对外部的a b没有任何影响。

传地址方式–数组名作参数

在这里插入图片描述

这里就是将a[10]的首地址传到了sub函数中,然后对其重新赋值,hello就变为了world,注意这里char b[]不能定义大小,因为我们不知道传入地址是多大的

传地址方式–引用类型作参数

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猛男技术控

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值