数据结构必要的C语言基础
使用C语言学习数据结构之前有一些必要了解的基础,许多同学在初学数据结构时因为对这些知识不熟,导致了对数据结构的畏惧心理。实际上很大一部分来自C语言的基础
C语言 结构体与指针
在一些场景中,如果传递给函数的结构体很大,使用指针方式的效率通常更高。

->为(* ).的简写
类型定义
typedef 数据类型 别名
typedef int zx

作用:
- 如果后期需要修改
myType1的数据类型, 可直接修改typedef后的数据类型int为其它数据类型 - 每次声明结构体变量都要写
struct关键
字,很麻烦,而且逻辑上也很难受,typedef
可以解决这个问题。


typedef struct
{
int x;
int y;
}po;
int main(int argc,char const *argv[])
{
po.p;//加了typedef之后, 声明结构体变量时不需要加struct关键字
p.X = 5;
p.y = 10;
printf("%d\n",p.x);
printf("%d\n",p.y);
return 0;
}

平时写的代码基本都是栈内存中的
手动控制的内存是堆内存

空指针:NULL

(int*):强制类型转换- 64位和32位下
int占空间不同, 写sizeof可使代码更通用 - 使用
malloc后一定要记得free
推荐书:深入理解c指针
时间复杂度


一般只关注时间复杂度, 不关注空间复杂度
空间复杂度:除了输入数据之外, 程序在运行时空间额外的开销
ADT(Abstract Data Type )抽象数据类型
ADT 约等于设计图纸
仅需理解(不理解也没有影响)
示例:


















![[Web 安全] PHP 反序列化漏洞 —— PHP 反序列化漏洞演示案例](https://i-blog.csdnimg.cn/direct/52344c5286404447ad376eef1269dc23.gif)

