一、一维数组
?
数组是包含给定类型的一组数据,并将这些数据依次存储在连续的内存空间中。每个独立的数据被称为数组的元素(element)。元素的类型可以是任意类型。数组本身也是一个结构,其类型由它的元素类型延伸而来。更具体地说,数组的类型由元素的类型和数量所决定。如果一个数组的元素是E类型,那么该数组就称为“E?数组”。例如 如果元素类型为int,那么该数组的类型就是“int 数组"。然而,int 数组类型是不完整的类型,除非指定了数组元素的数量。如果一个int 数组有16个元素,那么它就是一个完整的对象类型,即“16个int元素数组"。
1.1一维数组的定义和初始化 数组的定义决定了数组名、元素类型以及元素个数。
其语法如下:? ?<类型> 数组名「<元素数量>]; 元素数量在方括号([])之间,它必须是大于0的整数常量表达式。
eg:? int? ar[5];
数组在存储单元中是顺序连续存放的,任何一个元素都可以单独访问,其标识方法是用数组名和下标。
二、二维数组
2.1二维数组的定义: 类型名数组名 [行表达式][列表达式]; 行与列用常量表达式。
eg:
int main()
{
int iar[3][4];//3行4列
int bar[3][6];//3行6列
return 0;
}
int iar[3][4];
一个二维数组,在本质上是有多个一维数组构成。(每个一维数的大小必须相同) 如:定义int ar[3][4]的二维数组,它是由3个一维数组组成,每个一维数组的大小是4个整型元素。可以只对部分元素赋值,未赋值的元素自动取0值。
如果对二维数组初始化,第一维可以缺省,但是第二维不可以缺省。
int? iar [ ][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
2.2 二维数组的使用
int main()
{
int iar[3][4];
int x = 0;
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 4; ++j)
{
iar[i][j] = ++x;
}
}
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 4; ++j)
{
printf("iar[%d][%d] = %d,%p\n", i, j, iar[i][j], &iar[i][j]);
}
}
printf("%d %d %d\n", sizeof(iar), sizeof(iar[0]), sizeof(iar[0][0]));//48 16 4
return 0;
}
?总结: C语言中的多维数组基本的定义是以数组作为元素构成的数组,二维数组的数组元素是一维数组,三维数组的数组元素是一个二维数组,依此类推。也就是说,多维数组用的是一个嵌套的定义。
?
|