一维数组
数组的创建
type_t arr_name [count]
//type_t 代表数组的类型
//arr_name 代表数组名
//count 代表数组的大小
//代码1:
char arr1 [10] ;
//代码2:
int arr2 [10];
注:数组的创建,[ ]中要给一个常量,不能给一个变量。
数组的初始化
//代码如下:
int a[10] = {0};
//数组的10个元全部初始化为0;
int b[] = {1,2,3,4};
//[]中数组的大小没有写,但是后面的初始化元素的个数就是数组的大小,这个数组的大小就是4;
char c[] ="abcdef";
//字符串的数组可以这样初始化
char d[3] = {'a','b','c'} ;
数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初
始化的内容来确定。
数组的使用
- 数组是使用下标来访问的,下标是从0开始。
- 数组的大小可以通过计算得到。
int arr[10] = {0};
int sz = sizeof (arr)/sizeof (arr[0]);
数组的存储
数组在内存中是连续存放的。
数组的数组名其实是数组首元素的地址。
//一维数组
int a[] = {1,2,3,4};
printf("%d\n",sizeof(a)); //16
//数组名 + 整数 代表第几个元素 如:a + 0 相当于 a[0]
printf("%d\n",sizeof(a+0)); //4
二维数组
二维数组的创建:
//数组创建
int arr[3][4];
char arr[3][5];
double arr[2][4];
//数组初始化
int arr[3][4] = {1,2,3,4}; //初始化第一行,其余都是 0;
int arr[3][4] = {{1,2},{4,5}}; //初始化第一行和第二行前两个数据,其余都是零!
int arr[][4] = {{2,3},{4,5}}; //二维数组初始化的时候必须有 列的大小 ,行的多少可以看初始 // //化的时候有几行,就这个而言,是两行四列。
二维数组的使用。
二维数组的使用也是通过下标的方式。
看代码:
include <stdio.h>
int main()
{
int arr[3][4] = {0};
int i = 0;
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<4; j++)
{
arr[i][j] = i*4+j;
}
}
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<4; j++)
{
printf("%d ", arr[i][j]);
}
}
return 0;
}
二维数组在内存中也是连续存储的。
是一行存储完存储下一行,所以初始化二维数组的时候 列的大小 一定不能没有 要不然存储的时候会出现问题。