数组的定义:
-
数组表示的是一组数据类型相同的数,这组数当中的每一个元素都是一个独立变量,数组就是用来存储和处理一组相同类型的数据的。必须牢牢记住:数组的三要素为数组的起始地址、范围和类型大小。
数组名,是数组的唯一标识符。 - 数组主要分一维数组和二维数组来学习,而多维数组其实是没有的,说句不好听的,数组学的就是一维数组。因为它们都是一维数组来铺垫的。
<1>一维数组的定义:
-
一维数组定义的一般形式为:
类型说明符 数组名[常量表达式];
eg:int array[5];
<2>一维数组的存储:
-
一维数组,在内存中是一段连续的存储区域 。
** 使用code数组存储上节中建立的数据表中的序号列中的数据,如下表所示 :**
-
特别注意一点:
在C语言当中,数组的下标总是从0开始记的,而不是从1开始。
这一点大家需要格外注意,特别是最初接触到数组。至于为什么从0开始,通过汇编语言我们可以知道[ ] 是一种基址变址运算符。因此数组的下标从0 处开始是由于存放数据基于起始位置偏移的是0 个单位处的。
<3>一维数组的初始化:
初始化有两种方式:
a、先定义数组,再进行初始化。
b、在定义的同时对其初始化。
初始化的情况分为五种:不初始化、全初始化、部分初始化、满实始化和不指定大小实始化 。(比较简单,这里就不一一细说。)
但要注意的是在定义数组时如果没有定义数组元素的个数,使用时就会发生异常,原因是内存中并没有为数组array开辟任何存储空间,数据自然无处存放。
<4>一维数组元素的操作-
写个小程序吧。
#include<stdio.h>
int main(void)
{
int i;
int array[5]={1,2,3,4,5}; //定义数组,同时初始化
for(i=0;i<5;i++) //循环访问数组元素
{
printf("a[i] = %d\n",array[i]);
}
return 0;
}//输出结果是 a[1] = 1 a[2] = 2 a[3] = 3 a[4] = 4 a[5] = 5
具体的就不多说了。说一下注意事项咯。在调用函数时,变量是按照传值方式传递的,而数组是按照传地址方式传递的。跟变量不一样,对于变量,实参可以改变形参,形参的改变不会影响到实参;对于数组,实参可以改变形参,形参的改变也会改变实参。
来自我的博客:http://blog.csdn.net/jinlongcai/article/details/51477952