C数组

2016-12-31 18:55:18来源:作者:人点击

第七城市
2015年10月20日09:14:50

数组(C次重点)
张明阳
数组的目的:数组是一种非常常用的存储数据的结构,大部分语言都提供了数组这种存储结构[数组不是非常重要,比较重要]

存储结构:变量 数组 链表

数组的优点: 存取速度快

数组的缺点:
需要一整块连续的空间[对于庞大的数据,往往没有一个适合的较大的连续的空间 如a[30000000]]


插入和删除元素的效率很低[插入和删除某个元素,其后的所有元素都要前后移动]

为什么需要数组:

1.为了解决大量同类型数据的存储和使用问题

2.用数组可以模拟现实世界[模拟现实世界,虽然不是很好,但是也差不多,如:一维数组可以当做一个线性结构,二维数组可以当做一个平面,三维数组可以当做一个三维立体,思维数组可以当做一个思维空间]

数组的分类:一维数组
二维数组 多维数组


一维数组:

怎样定义一维数组:

1>为n个变量连续分配存储空间:数组的内存空间是连续分配的

2>所有的变量数据类型必须相同:数组不可能第一个元素是整型,第二个元素是浮点型

3>所有的变量所占用的字节大小必须相同

满足这三个条件才是数组,现在学习的是原始数组

数组不是学习重点的原因:

传统数组的缺点

1>数组的长度必须事先指定,而且只能是常整数,不能是变量

2>传统方式定义的数组,该数组的内存程序员无法手动释放,直到该数组所在的函数运行终止

3>数组的长度一旦定义,就不能再更改,数组的长度不能再函数运行的过程当中动态的扩充或缩小

4>传统方式定义的数组不能跨函数使用,静态内存不能跨函数使用,传统数组的问题即静态内存的问题

具体:f函数定义的数组,只有在f函数运行期间才可以被其被其他函数使用,因为f函数中的数组的内存空间的使用权限已经被操作系统收回

5>有关一维数组的操作[排序,倒置,查找等等],都需要自己另外编程序实现,而我们通常用第三方软件[工具]如数据库等方便直接地实现

数组的操作:初始化 赋值
排序 求最大/小值 倒置 查找 插入 删除[除了赋值和初始化,后面不用怎么掌握,因为语言级别的数组很少用,我们经常使用的是以数组为内核,别人造的一个工具]


一维数组的赋值和初始化:类似于结构体的赋值和初始化

数组变量的赋值和初始化,类似于结构体的赋值和初始化,有两种方式:

1>定义数组变量的同时为数组变量整体赋值

2>如果定义完数组变量之后再进行赋值,则只能为数组变量中的每个成员单独的进行赋值

[只有在定义数组的同时才可以整体赋值,其它情况下整体赋值都是错误的,在编程当中很少自己定义一个数组,一般是通过容器进行实现

int a[5]//定义了5个变量,这5个变量的名字分别为a[0],a[1],a[2],a[3],a[4]]

二维数组:[用的很少]略

int a[3][4];//定义了12个变量,可以当做3行4列来进行看待

多维数组:[背下来]

是否存在多维数组:不存在,因为内存是线性一维的,不分行,不分列的,而是一个个元素顺序排列的,只是为了模拟方便而已

N维数组可以当做每个元素是n-1维数组的一维数组

Int a[3][4]

该数组是含有3个元素的一维数组,只不过每个元素都可以再分成4个小元素
第七城市

相关文章

    无相关信息

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台