数组

数组

对于有些数据,只用简单的数据类型是不够的,难以反映出 数据的特点,也难以有效地进行处理。
要点:
在这里插入图片描述
概念:
数组:具有一定顺序关系的若干相同类型数据的集合, 为构造数据类型之一。 
数组名:为该数据集合起的一个名字 。 
数组元素:组成数组的数据。属同一数据类型,用数组 名和下标确定。

表达形式
数据类型 数组名[常量表达式]
(合法标识符) (表示元素个数下标 从0开始不能为变量)
注:1、C++语言对数组不作越界检 查,使用时要注意
2、数组名表示内存首地址 它是地址常量
3、常量表达 式包括常量、符号常量
4、[]: 数组运算符 优先级(1) 左结合,不能用()
5、数组必须先定义,后使用 ,只能逐个引用数组元素,不能一次引用整个数组 。
6、数组元素表示形式: 数组名[下标]
其中:下标可以是常量或整型表达式
初始化
数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值。
初始化是指在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值)
如:int a[5]={1,2,3,4,5}; 等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;
注:
数组不初始化,其元素值为随机数 ,可以只给部分数组元素赋初值,其余的自动赋以0 值 。当全部数组元素赋初值时,可不指定数组长度。
注:int* a = new int5;注意后面的一对圆括号,它的意思是使用默认值初始化整个数组。

简单选择法
思想:选择排序,让数组中的每一个数,依次与后面的数进行比较,如果前面的数大于后面的数,就进行位置的交换。选择排序:第一个数依次与后面的数比较,第一次比较完之后最小的数在最前面 。
在这里插入图片描述
冒泡排序(从小到大)
思想:相邻两个数进行比较,第一波比较后,最大的数在最后。(每比较完之后,后面的数就减少一个比较 )

在这里插入图片描述

一维数组
静态 int array[100];   定义了数组array,并未对数组进行初始化
静态 int array[100] = {1,2};  定义并初始化了数组array
动态 int* array = new int[100]; delete []array;  分配了长度为100的数组array
动态 int* array = new int100;  delete []array; 为长度为100的数组array初始化前两个元素
在这里插入图片描述

二维数组
静态 int array[10][10];  定义了数组,并未初始化
静态 int array[10][10] = { {1,1} , {2,2} };  数组初始化了array[0][0,1]及array[1][0,1]
动态 int (array)[n] = new int[m][n]; delete []array;
动态 int
* array = new int*[m]; for(i) array[i] = new int[n]; for(i) delete []array[i]; delete []array; 多次析构
动态 int* array = new int[m][n]; delete []array; 数组按行存储
在这里插入图片描述
在这里插入图片描述

多维数组
  int* array = new int[m][3][4]; 只有第一维可以是变量,其他维数必须是常量,否则会报错
delete []array; 必须进行内存释放,否则内存将泄漏
在这里插入图片描述

赋值

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值