C++课堂笔记四
数组基本概念
- 可以用来表达类型相同的元素的集合,集合的名字就是数组。
- 数组里的元素都有编号,元素的编号叫下标. 通过数组名和下标,就能访问元素。
1
2
3
4
5定义方法:
类型名 数组名[元素个数]
(元素个数必须是常量或常量表达式,不能是变量,其值必须是正整数。元素个数也称作数组的长度)
int a[100] 名字为a的数组,有100个元素,每个元素都是一个int型的变量。
1 | T a[N]: //T为类型名,如char, double, int等 N为正整数或值为正整数的常量表达式。 |
倒序问题: 键盘输入100个整数,将他们按和原顺序相反的顺序输出。
1 |
|
数组的初始化
在定义一个一维数组的同时,就可以给数组中的元素赋初值
类型名 数组名[常量表达式] = {值,值……值};
int a[10] = {0,1,2,3,4,5,6,7,8,9} // a[0] = 0
用数组取代复杂分支结构
1 | string weekdays[] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}; |
1 | 思路: 2012年1月22日是星期天,算出给定日期就是该天起过了x天,然后输出x%7 |
数组的越界
int a[10];
用变量作为数组下标时,不小心会导致数组越界(变量下标值变为负数,或太大)
- 可能引起意外修改其他变量的值,导致运行结果不正确
- 可能试图访问不该访问的内存区域,导致程序崩溃某些编译器
- 可能可以正确运行,换一个就错误
二维数组
1 | 定义N行M列的二维数组: |
1 | 访问数组元素的方法: |
二位数组的存放方式:
二维数组的每一行,实际上都是一个一维数组
二维数组的初始化:
遍历二维数组: 遍历一个二维数组,将所有元素逐行依次输出
1 |
|
1 |
|