数组介绍
数组:0或N个 类型相同 进行连续存储
int array[5]1.数组通过[n]下标访问元素,下标从0开始,合法下标应为0到N-1 下标合法性由程序员保证 编译器无法检查其合法性
2.数组定义时,未被定义到的元素值为0
3.定义数组可以自动计算元素的个数 int array[]={11,22,33,44,55};
4.数组不可整体赋值 因为数组名单独作为实参 或 作为 右值 以首地址的形式出现
------------------------------------------------------
二维或二维以上称之位多维数组,空间依然连续
int aa[2][3]
int aa[2][3][4]矩阵:在C语言中常用二维数组表达矩阵
数组声明
int ar[5]={11,22,}; //数组定义时,未被定义到的元素值为0
int ar[5]={[3]=11,22,[0]=5566}; //C99指定元素定义
int ar[]={11,22,33,44,55}; //定义时数组可以自动计算元素个数
-
数组通过[n]访问元素 下标从0开始 合法下标为0--(N-1)
- 编译器无法检查下标合法性 由程序员自己保证正确
数组赋值
1. 数组不支持整体赋值 仅在定义时可用{}
ar[5]={1,2,3,4,5};
2. 数组不支持整体赋值:数组名单独作为右值 它以首地址的形式存在 指向第一个元素
br=ar; //错误:将‘int *’赋值给‘int[5]’时类型不兼容
数组名单独作为右值 它以首地址的形式存在 指向第一个元素
br=ar; //错误:将‘int *’赋值给‘int[5]’时类型不兼容
数组名单独作为函数参数 它以首地址的形式存在 指向第一个元素
一维数组
int ar[5]={0};
void showArray(int ar[5],int n) ------------------------->showArray(ar,5);
void showArray(int *ar,int n) ------------------------->showArray(ar,5);
二维数组
int ar[3][2]={1,2,3,4,5,6};
void showArray(int ar[3][2] );------------------------>showArray( ar );
void showArray(int (*ar)[2] );------------------------>showArray( ar );
void showArray(int ar[2] );------------------------>showArray( ar[2] );
void showArray(int *ar );-------------------------->showArray( ar[2] );
int ** Ptr <==> int Ptr[ x ][ y ];
int *Ptr[ 5 ] <==> int Ptr[ 5 ][ x ];
int ( *Ptr )[ 5 ] <==> int Ptr[ x ][ 5 ];