一、数组的概念
1.一维数组的定义与使用
int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = 20; array[1] = 30; array[9] = 80; 错误写法:
//array[10] = 100;//没有 array[10]这个元素
数组在内存中就是一段连续的空间,每个元素的类型是一样的
2.一维数组初始化
int array[10] = { 100, 1, 5, 3, 4, 5, 6, 7, 8, 0 };//定义数组的同时为数组的成员初始化值 int array[10] = { 3, 7, 9 };//将数组的前三个元素赋值,其余元素置为0 int array[10] = { 0 };//将数组所有的元素都置为0 //通过循环遍历数组的每个元素,将元素的值置为0 int i; for (i = 0; i < 10; i++) { array[i] = 0;//通过循环遍历数组的每个元素,将元素的值置为0 }
二、数组内部存储结构
int main() { char array[5] = {'a','A','b','B','c'}; for(int i = 0;i <5;i++) { printf("array[%d] = %c ",i,array[i]); } return 0; }
1.内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的
2.数组名代表了数组的存储地址
3.数组元素的地址为其存储空间的首字节
三、数组和函数
1.数组作为函数参数,如果传递的是数组的地址,那么修改函数形参数组元素的
2.64 bit 编译环境下指针占8个字节
3.如果形参内是基本数据类型则是值传递,不改变数组元素的值
数组实例:
四、二维数组
1.定义与使用
定义:二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
int array[2][3]; //定义了一个二位数组有2个array[3]
2.使用:
int ages[3][5] ={ {10,84,97,96,85}, {25,97,56,48,21}, {84,5,63,84,92} };
3.二位数组内存分布: