数组、链表、栈、队列、数组指针、指针数组、函数指针、指针函数、常量指针、指针常量

数组:
数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的优势,在于可以方便的遍历查找需要的数据。但是他对内存的要求比较严格,必须找到一段连续的内存才能存储。

链表:
链表在内存中不是连续存储的,所以可以充分利用内存中的碎片空间,这是区别于数组的地方。除此之外,链表还是很多算法的基础,最常见的哈希表就是基于链表来实现的。
(对应的例程在数据结构的day1-day5)

栈:
栈是一种特殊的线性表,仅限在表尾进行插入和删除。在这种特殊的线性表中,把数据的插入叫做“入栈”,把数据的删除叫做“弹栈”或者”出栈“,入栈只能”尾插“,出栈只能”尾删“,也就是说,它是一种 后进先出 的数据存储结构。
(对应的例程在数据结构的day5)

队列:
队列,简称队,它是一种操作受限的线性表,其限制在表的一端进行插入,另一端进行删除。可进行插入的一端称为队尾(rear),可进行删除的一端称为队头(front)。向队中插入元素叫入队,新元素进入之后就称为新的队尾元素。从队中删除元素叫出队,元素出队后,其后继结点元素就称为新的队头元素。
队的特点就是先进先出(栈为先进后出)。队列按存储结构可分为链队和顺序队两种。
(对应的例程在数据结构的day6)

指针数组,数组指针
指针数组:本质上是一个数组,里面存放的元素是指针(int *a[2];)
数组指针:本质上是指针,指向的是数组(int (*a)[2])

指针常量、常量指针
指针常量:指针不可改变(地址不可改变),但是地址里面存放的内容可以改变(int * const p)
常量指针:指针可改变(地址可变),地址里面存放的内存不可变(const int *p)

指针函数、函数指针
指针函数:本质上是一个函数,只不过返回值为一个指针类型(int *swap(int ,int))
函数指针:本质上是一个指针,指向一个函数的入口地址(int (*swap)(int , int))

猜你喜欢

转载自blog.csdn.net/LH_SMD/article/details/107655876