1、什么是数组
C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
一维数组
声明数组
数组:类型符 数组名[常量表达式]
//声明一个长度为3的数组,注意数组下标是由0开始的0、1、2
int array[3];
数组的赋值与遍历
//数组的赋值方法
//1、全部赋值
int a[10]={1,2,3,4,5,6,7,8,9,10};
//2、部分赋值
int b[10]={1,2,3,4,5,6};
//3、直接赋值,不定义数组长度
int c[]={1,2,3,4,5,6,7,8,9};
//求数组c的长度
int size;
//把整个数组的大小,除以数组中一个元素的大小
size=sizeof(c)/sizeof(c[0]);//sizeof关键字,能计算括号中对应的内存空间大小
printf("数组c的长度%d\n",size);
//遍历数组c
int data;
for(int data=0;data<size;data++){
printf("地址是 %p 数值是%d\n",&c[data],c[data]);
}
运行结果
此处注意:sizeof关键字的使用它能计算数组的长度
二维数组
二维数组定义的一般形式为:类型说明符 数组名 [常量表达式][常量表达式];
二维数组的初始化
//二维数组的初始化
//他的作用只对各行第一列即序号为0的列的元素赋值,其余元素值自动为0
int a[3][4]={{1},{2},{3};
//也可以对各行中的某一元素赋初值
int b[3][4] ={{1},{0,1},{0,0,1}};
//这种方法对非0元素少时比较方便,不必将所有0都写出来,只须输入少量数据
//也可以只对某几行元素赋初值
int c[3][4] = {{1},{3,4}};
//如果对全部元素都赋初值(即提供全部初始数据),
//则定义数组时对第1维的长度可以不指定,但第二维的长度不能省
int d[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
int d[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
二维数组的一个小案例
求二维数组中的最大值,并求出其对应的下标
#include <stdio.h>
int main(){
//1、先定义一个二维数组
int array[3][4]={222,2,56,9999,66,42,53,4632,464,3252,7765,993};
//最大值
int max = array[0][0];
//最大值的下标a,b
int a =0;
int b =0;
for(int i = 0;i<3;i++){
for(int j =0;j<4;j++){
if(max<array[i][j]){
max=array[i][j];
a=i;
b=j;
}
}
}
printf("在第%d行第%d列的数%d最大",a,b,max);
return 0;
}
运行结果