数组

来源:互联网 发布:网络语call是什么意思 编辑:程序博客网 时间:2024/05/17 09:13

一维数组的创建

定义一维数组的一般形式
类型符 数组名[常量表达式];
说明:
(1)在定义数组时,需指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度
   注:数组下标从0开始
(2)常量表达式中课包括常量和符号常量,不能包含变量,即C语言中不允许对数组的大小作动态定义,即
   数组的大小不依赖于程序运行过程中变量的值
(3)如果在被调用的函数(不包括主函数)中定义数组,其长度可以是变量或非变量表达式
   如:void fun(int n)
      {
          int a[2 * n];
          ......
      }
      在调用fun函数时,形参n从实参得到值,此时称为“可变长数组”,允许在每次调用fun函数时,n
      有不同的值。但是在执行函数时,n的值是不变的,数组长度是固定的。
   如果指定数组为静态(static)存储方式,则不能用“可变长数组”
   如:
   static int a[2*a];

一维数组的初始化

(1)定义数组时对全部数组元素赋予初值
   如:int a[10]={0,1,2,3,4,5,6,7,8,9};
(2)只给数组中的一部分元素赋初值
   如:int a[10]={0,1,2,3,4,5};
       其余元素均赋初值为0
(3)数组中元素全部初始化为0
   如:int a[10]={0};
(4)对数组全部元素赋初值时,可以不指定数组长度
   如:int a[]={1,2,3,4,5};

一维数组的引用

引用数组元素的表示形式为
数组名[下标]

二维数组的创建

二维数组定义的一般形式为
类型说明符 数组名[常量表达式][常量表达式];
说明:
(1)二维数组中排列顺序是按行连续存放的,即在内存中先顺序存放第一行的元素,接着在存放第二节的
   元素
(2)定义数组时,行数可以不写,但是列数必须写
二维数组的初始化
(1)分行给二维数组赋初值。
   如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
   第一个花括号内的数据给第一行的元素,第二个花括号内的元素给第二行的元素......
(2)可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值。
   如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
(3)可以对部分元素赋初值。
   如:int a[3][4]={{1},{5},{9}};
   它的作用是只对各行第一列(即序号为0的列)的元素赋初值,其余元素值自动为0。
(4)如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二
   维的长度不能省。
   如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
   等价于:
   int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

二维数组的引用

二维数组元素的表示形式为
数组名[下标][下标]
说明:
(1)在引用数组元素时,下标值应在已定义的数组大小的范围内。
(2)注意区分定义数组时用的a[3][4]和引用元素时的a[3][4]。
   前者用来定义数组的维数和各维的大小,后者中的3和4是数组元素的下标值,a[3][4]代表行序号为3,
   列序号为4的元素(行序号和列序号均从0算起)


原创粉丝点击