一维数组创建:type_t arr_name[const_n] // type_t是指数组的元素类型,const_n是常量表达式,指定数组大小
例如: int arr[10];
一维数组的初始化:创建数组时同时给数组内容一些合理初始值
例如: int arr[10] = {1,2,3,4,5};
char ch[] = "abc";
一维数组的使用:
#include<stdio.h>
int main()
{
int arr[10] = {0};
int i = 0;
for(i=0;i<10;i++)
{
arr[i] = i;
}
for(i=0;i<10;i++)
{
printf("%d",arr[i]);
}
return 0;
}
一维数组的存储:
数组在内存中是连续存放的,既随着数组下标的增长,元素的地址,也在有规律的递增。
一维数组的指针访问:数组的数组名其实是数组首元素的地址。
#include<stdio.h>
int main()
{
int arr[10] = {0};
int i = 0;
int *p_arr = arr;
for(i=0;i<sizeof(arr)/sizeof(arr[0]);++i)
{
*(p_arr+i) = i;
}
for(i=0;i<sizeof(arr)/sizeof(arr[0]);++i)
{
printf( "%d\n"*(p_arr+i) = i);
}
return 0;}
二维数组的创建和初始化:
例如:int arr[3][4];
char ch[2][5];
int arr[3][4] = {1,2,3,4};
char ch[2][5] = "abcdef";
二维数组的使用:
#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;
}
二维数组的存储也是连续存储的。
二维数组的指针访问:
#include<stdio.h>
int main()
{
int arr[3][4] = {0};
int*p = &arr[0][0];
int i = 0;
for(i=0;i<3*4;i++)
{
p[i] = i;
}
for(i=0;i<3;i++)
{
int j = 0;
for(j=0;j<4;j++)
{
printf("%d ",arr[i][j]);
}
}
return 0;
}