数组 笔记1

一、什么是数组
数组,就是多个元素的有序“组合”。

C 和 C++语言中的数组:
1)相同大小的内存块组成,即相同类型的数据
2) 编号从 0 开始递增,具有相应的编号
3)而且这些编号是递增顺序。
数组的“容量”是不能改变的。

二、数组的定义

数组和其他变量一样,需要先定义,再使用。
实例:int a[8];
//定义了一个数组,
//数组名是“a”,
//包含 8 个元素,
//每个元素是 int 类型的变量

三、数组的初始化

在定义数组的同时,设置数组内的元素值,未设置的值默认为0。
int a[8] = {20, 5, 30, 13, 18};
printf("%d,%d,%d,%d,%d\n", a[0],a[1],a[2],a[3],a[4]);
或者
cout << a[0] << “,” << a[1] << “,” << a[2] << “,” << a[3] << “,” << a[4];
int a[8] = {0}; //把数组的所有元素都初始化为 0
printf("%d,%d,%d,%d,%d\n", a[0],a[1],a[2],a[3],a[4]);
int a[8] = {1}; //把 a[0]初始化为 1,其它值都初始化为 0
int b[8] = {1, 5}; //把 a[0]初始化为 1,a[1]初始化为 5,其它值都初始化为 0

int a[] = {1,2,5}; //定义数组 a, 这个数组包含 3 个元素!
// 根据“初始化列表”,自动计算数组的容量

 

另:

高逼格用法(在某些特殊场合使用)
优点:但数组的成员较多时,该方式可读性高
缺点:仅仅 C 编译器支持,C++编译器中不支持,即 C++程序中不能使用。
//每周的锻炼时间:
int exercises[7] = {
[1] = 1, //a[1] = 1
[3] = 2, //a[3] = 2
//没有指定的成员,被初始化为 0
};

常见错误
int a[2] = {1,2,5}; //错误!初始值太多,大于数组的容量
int a[3];
a = {1, 2, 3}; //不能对数组名直接赋值!
int a[3];
a[3] = 10; //下标越界!下标的取值范围是 0, 1, 2

四、对数组元素的访问

通过下标访问对应的元素。
特别注意, 数组的第一个元素的下标是 0, 而不是 1
int girlSize[10];
a[5] = 38;
printf(“%d\n”, a[5]);
cout << a[5];
另类用法:
使用下标的方式访问 string 字符串
string name = "Xavior";
//name[i]是 string 字符串中的第 i 个字符(char 类型)
for (int i=0; i< name.length(); i++) {
cout << name[i]

}
name[0] = 'L'; //name 变成:Lavior
cout << endl << name;

五、数组越界

数组的越界, 是指下标超出正常的范围!
例如:
int a[10]; //a[-1] 和 a[10]都是越界!
越界的后果
越界非常危险,可能导致数据破坏,或其他不可预期的后果!
越界的控制
需要程序员自己手动控制,编译器不做任何检查!因为,C/C++语言完全信任程序员!

posted @ 2020-05-03 10:37  CollisionDimension  阅读(91)  评论(0)    收藏  举报