1、 一维数组
定义:
为n个变量连续分配存储空间
所有的变量数据类型必须相同
所有变量所占的字节大小必须相等。
相关操作:
不完全初始化
int a[5] = {1,2,3};//不完全初始化,未被初始化的元素自动为零
完全初始化
int a[5] = {1,2,3,4,5};//a代表数组名,代表数组第一个元素的地址,一共有5个元素,分别为a[0]~a[4]。
清零
int a[5] = {0};
错误赋值:
int a[5];
a[5] = {1,2,3,4,5}; //错误,只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的
int a[5] = {1,2,3,4,5};
a[5] = 100;//error因为没有a[5]这个元素,最打元素为a[4]
int a[5] = {1,2,3,4,5};
int b[5];//如果要把a数组中的值全部复制给b数组,错误的写法:
b = a ; //error
//正确的写法:
for(i=0 ;i<5;++i)
b[i]=a[i];
①事例代码1:
/*打印输出a[0]~a[4]的元素*/
#include <stdio.h>
int main(void)
{
int a[5] = {1,2,3,4,5};
//a是数组名,5代表数组的元素个数,并且这5个元素分别为a[0],a[1]..a[4]。
int i;
for(i=0 ;i<=4 ;++i)
{
printf("%d",a[i]);
}
return 0;
}
12345
①事例代码2:
/*键盘录入数组元素,并依次输出*/
#include <stdio.h>
int main(void)
{
int i;
int a[5];
printf("请输入5个整数,中间以空格隔开\n");
for(i=0 ;i<=4 ;++i)
{
scanf("%d",&a[i]);
}
for(i=0 ;i<=4 ;++i)
{
printf("a[%d]=",i);
printf("%d ,",a[i]);
}
printf("\n");
return 0;
}
请输入5个整数,中间以空格隔开
11 25 34 51 64
a[0]=11 a[1]=25 a[2]=34 a[3]=51 a[4]=64
2、二维数组
格式:
int a[3][4];
总共是12个元素,可以当做3行4列看待,这12个元素的名字依次是:
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
a[i][j]表示第i+1行第j+1列的元素。
int a[m][n];该二维数组右下角位置的元素只能是a[m-1][n-1]。
二维数组初始化:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[3][4]={{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
①事例代码1:
/*二维数组元素的遍历*/
#include <stdio.h>
int main(void)
{
int i,j;
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
for(i=0 ;i<=2 ;++i)
{
for(j=0 ;j<=3 ;++j)
{ printf("a[%d][%d]=",i,j);
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
a[0][0]=1 a[0][1]=2 a[0][2]=3 a[0][3]=4
a[1][0]=5 a[1][1]=6 a[1][2]=7 a[1][3]=8
a[2][0]=9 a[2][1]=10 a[2][2]=11 a[2][3]=12