1.一维数组
1.1什么是数组
数组是一组相同类型元素的集合。
1.2数组的创建
type_t arr_name [const_n];
int arr1[10];
char arr2[10]
float arr3[10];
double arr[10];
1.3数组的初始化
int arr1[10]={1,2,3};
char arr2[10]="ancd";
char arr3[10]={'a','b','c','d','\0'};
int arr4[]={1,2,3,4};
char arr5[]="abcdef";
char arr6[]={'a','b','c'};
1.4数组的使用
对数组的使用都是从下标开始的访问元素,C语言数组的下标是从0开始的。
int arr[5]={1,2,3,4,5};
int a=arr[0];
int b=arr[1];
int c=arr[2];
int d=arr[3];
int e=arr[4];
int f=arr[5];
可以看到a,b,c,d,e的值一一对应,而f的值不存在就是一个随机值。
1.5一维数组在内存中的存储
由此可见一维数组地址是连续存放并且递增的。
2.二维数组
2.1数组的创建
int arr[3][3];
char arr1[3][3];
double arr2[3][3];
2.2数组的初始化
int arr[3][3]={1,2,3,4,5,6,7,8,9};
int arr2[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int arr2[][3]={{1,2,3},{4,5,6},{7,8,9}};
2.3数组的使用
同样也是引用下标来实现,规定行列从0开始,第一行的第一列元素的下标为[0][0].
2.4数组在内存中的存储
#include <stdio.h>
int main(){
int arr[3][4] = { 1,2,3,4,5,6,7,8,9 };
int i = 0;
for (i = 0; i < 3; i++){
int j = 0;
for (j = 0; j < 4; j++){
printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
}
}
return 0;
}
二维数组的地址也是连续存放且递增的。
有关二维数组应用见文章
三子棋
扫雷
|