数组是一类相同元素的集合。数组游戏程序:三子棋。
一、一维数组
(一)创建
int arr1[10];
char arr3[10];
double arr4[1];
注意:[]里只能是常量,不能使用变量,C99前不支持变长数组。
(二)初始化
int arr1[10] = {1,2,3}; //只初始化前三个,不完全初始化
int arr2[] = {1,2,3,4}; //根据内容确定数组个数,不指定数组大小
char arr3[3] = {'a',98,'c'}; //注意数组类型,这里是ASCII码
char arr4[] = "abcdef"; //注意\0
(三)访问
- 数组访问使用[],例如arr[0],下标从0开始。
- 计算数组元素个数可以使用
sz = sizeof(arr)/sizeof(arr[0]);
(四)存储
可以看到,数组在内存中存放是连续的,由低地址向高地址存放。
二、二维数组
(一)创建
二维数组的创建需要注意:二维数组初始化可以省略行,但不能省略列。
int arr[][4] = {{2,3},{4,5}};
(二)存储
在这个2*2的数组中,其实也是按逐行存储。
三、数组传参
- 数组名表示的是数组首元素地址。
有两个例外:
(1) sizeof(数组名):计算整个数组大小(字节);
(2) &数组名,取出的是数组的地址。
- 数组传参时传递的是首元素地址,数组元素个数也要同时传递。
void bubble_sort(int arr[], int sz)
{
\\代码实现
}
\\调用
bubble_sort(arr, sz);