数组的定义
数组是一组相同类型元素的组合。
定义格式:
1、数据类型 [ ] 数组名;
int [ ] a;定义一个int类型的数组a变量
2、数组类型 数组名 [ ];
int a[ ];定义一个int类型的数组a变量
一维数组的创建和初始化
一、 数组的创建的实例:
//代码1
int arr1[10];
//代码2
int count=10;
int arr2[count];
注:数组创建,[ ]中要给一个常量才可以,不能使用变量。
二、数组的初始化数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。
eg:
int arr1[ ]={1,2,3,};
int arr2[2]={};
char arr3[3]={'a',98,'c'};
char arr4[ ]="abcd";
数组在创建的时候如果不想指定数组的大小就得初始化。数组的元素个数根据初始化的内容来确定。
三、一维数组的使用
总结:
1、数组的下标是用来访问的,下标从0开始
2、数组的大小可以通过计算得到
int arr[10];
int sz=sizeof(arr)/sizeof(arr[0]);
四、一维数组在内存中的存储
结论:数组在内存中连续存放且由低地址指向高地址
五、一维数组的指针指向
1、数组的数组名其实是数组首元素的地址
2、通过对数组名+整数的运算,可以获取每个元素的地址
二维数组的创建和初始化
一、二维数组的创建
//数组的创建
int arr[2][3];
char arr[3][5];
double arr[2][4];
//数组的初始化
int arr[3][4]={1,2,3,4};
int arr[][4]={{1,3},{4,5}};
二、二维数组的使用
二维数组的使用也是通过下标的方式
三、二维数组在内存中的存储
同一维数组一样,二维数组在内存中也是连续存储的
四、二维数组的指针访问
结论:二维数组也可以通过指针来访问
总结:
数组名代表整个数组的时候只有两种情况:
sizeof(数组名),这里的数组名表示整个数组
&数组名,这里的数组名表示整个数组
数组作为函数参数
数组作为函数参数的时候,不会把整个数组传递过去。实际上只是把数组的首元素的地址传递过去了。所以即使在函数参数部分写成数组的形式:int arr[ ],表示的依然是一个指针:int *arr。
有关函数的运算