数组分为 一维数组和二维数组
同一数组其所有元素的数据类型都是相同的
数组名的定义符合标识符规范
数组开辟完大小不可以改变
数组名不可以和其他变量名相同
认识一维数组
一般形式int a[5] 其地址为连续
开辟5个int 类型空间一个空间有4个字节 a[0],a[1],a[2],a[3],a[4] 一个空间内有4个字节,其空间内首个字节的地址为空间地址
a[0]+1=a[1]
int a[5] :定义长度为5,int类型的数组
a:数组名,数组的首地址a为常量不可进行自增自减,不可进行赋值
char会开辟一个字节
char a[5] a[0],a[1],a[2],a[3],a[4]
int a[5] 数组的开辟
a[0]-a[4]里[]的数是描述数组的的第几位
可以用符号常量或者字符常量或者整形表达式
eg:int b; int a[b];不可以 因为数组名不可以和其他数组名相同 int a(3);数组表达不对应为[],int a[2,3];
数组可以为符号常量,整型常量,或者整型表达式。int auto[10]不可以因为auto为特殊字符 其表达式得符合标识符规范。
数组元素
1.是组成数组的基本单元
2.数组下标从0开始
3.可以理解为变量
4。相邻数组元素地址连续
在引用数组元素时,下标可以是整型常量,整型变量,整型表达式
eg;int a[5]; a[2];a[2+1];a[2<1];int b=3; a[b]
一维数组的引用
c语言只能逐个引用数组里的元素,而不可以一次引用整个数组
sizeof()关键字
sizeof()是一个判断数据类型或者表达式长度的运算符
一维素组的初始化
int a[5]={1,2,3,4,5} = a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5
inta[10]={1,2,3,4,5} = a[0]=1.....a[4]=5 a[5]-a[9]=0
c语言初始化时数组长度超过正常输出长度会产生告警
c语言的引用时(输出长度)超过数组长度时不会报错
算法:计算学生成绩平均值
算法:输出最大值
冒泡排序
for(i=0;i<5;i++)
if(a[i]>a[i+1]
{t=a[i];a[i]=a[i+1];a[i+1]=t}
依次进行循环进行大小比较并且进行排序外循环一次内循环n次
二维数组
类型名 数组名[整型常量][整型常量]
int a[2][3]
char a[2][3]
float a[2][3]
2.存储方式
数组元素连续存放,地址连续
int a[2][3] 2行三列 a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[0]是第一行的数组名 a[1]第二行的数组名 a=&a[0] a[0]=&a[0][0] a+1=a[1] a[0]+1=&a[0][1]
二维数组的初始化
int a[3][3]={1,2,3,4,5,6,7,8,9}
inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int a[][3]={{1,2,3},{4,5,6},{{7,8,9}}
int a[3][4]={{1},{5},{9}};={1,0,0,0}{5,0,0,0},{9,0,0,0}
int a[3][4]={{1},{0,6},{0,0,0,1};={1,0,0,0}{0,6,0,0}{0,0,11,0}
输出矩阵并且判断最大值在第几个数
缺陷:不能判断是否有相同的最大值,和相同的在第几位。