01
前言
上期回顾
上一次给大家讲了C++表达式与运算符优先级,表达式和优先级是很重要的内容,这回贯穿未来C++的学习中,当然如果优先级你不太确定,可以使用()来控制优先级,但是结合顺序就一定要掌握啦。
想要学好,最好的方式就是多想,多练习。
今天主要给大家讲的就是数组,数组很重要,很重要,有些内容比较简单,但是有些也比较难,因为是入门开始,我们不会说太难的。
上期思考题答案
b || a - 4 && a / b = 1 , a = 12 , b = 3
b && a * b && a + b = 1 , a = 12 , b = 3
a+b/(a + b) && b++ = 1 , a = 12 , b = 4
a+=b*=a-=b/=a - b = 12 , a = 12 , b = 0
02
本期看点
数组概念
C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组元素性质
(1)数目固定。
(2)类型相同。
(3)排列有序。
数组特点
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,下标为0,最高的地址对应最后一个元素,下标为n-1(数组长度为n)
数组操作
1.声明数组
在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量,如下:
type arrayName [ arraySize ];
注意:arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C++ 数据类型。
示例如下:
int array[10];
2.初始化
数组可以可以逐个初始化,也可以使用一个初始化语句进行初始化。示例代码如下:
int array1[5] = { 1,2,3,4,5 }; //直接初始化
int array2[5]; //逐个初始化
for (int i = 0; i < 5; i++) {
array2[i] = i;
}
注意:
(1)大括号 { } 之间的值的数目不能大于在数组声明时在方括号 [ ] 中指定的元素数目。
(2)如果省略掉了数组的大小,数组的大小则为初始化时元素的个数。
(3)使用一个初始化语句初始化整型数组,若赋值个数小于数组长度,未赋初值的,默认为0。
对于(3),如果定义下面这个数组:
int array3[5] = { 1,2,3,4 };
则执行结果为:
3.访问数组元素
数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。遍历数组,逐个访问数据元素示例如下:
for (int i = 0; i < 5; i++)
{
cout << array1[i] << endl;
}
n维数组
1.一维数组
只含有一对中括号,如下:
int array[10];
一维数组简单,没有太多需要讲的东西,后面有用到的地方再说明。
2.二维数组
含有两对中括号,如下:
int array4[2][2];
这个二维数组的空间排布为:
array4[0][0] | 第一列 | 第二列 |
第一行 | array4[0][0] | array4[0][1] |
第二行 | array4[1][0] | array4[1][1] |
二维数组有两种赋值方法,一种是逐步赋值,需要用到循环嵌套,另一种方法就是直接赋值:
int array4[2][3] = { {1,2},{3} };
大括号嵌套小括号,第二层的大括号表示一行,大括号里面的数据表示列,从前往后,如果没有数值,则默认为0。即上面这个数组为:
array4[2][3] | 第一列 | 第二列 | 第三列 |
第一行 | 1 | 2 | 0 |
第二行 | 3 | 0 | 0 |
3.n维数组
通过一维数组和二维数组,我们能知道,对于n维数组,有n对中括号,一般最常见到三维,三维数组示例如下:
int array5[5][2][3];