您的位置:首页 > 编程语言 > C语言/C++

基于proteus的51单片机仿真实例四十一、C语言的一维数组

2017-05-01 09:27 281 查看
1、基本数据类型(如整型、浮点型、字符型)的一个重要特征是只能具有单一的值,然而,许多情况下我们需要用到不止一个数据。例如:我们想要统计10个学生的成绩,如果用基本数据类型来表示的话,需要定义10个基本类型变量。如果有更多学生,那就需要有更多的基本类型变量。那么有没有更好的办法,定义一种新的数据类型,能够包含更多的数据?如果有,无疑将大大简化操作。

C语言中除了基本数据类型外,还提供了构造类型的数据,构造类型的数据是由基本类型数据按照一定规则组合而成的,因此也称为导出类型数据,。C语言提供了三种构造类型:数组类型、结构体类型和共用体类型。构造类型可以更为方便的描述现实问题中各种复杂的数据结构。

2、数组

数组是一组有序数据的集合,数组中的每一个数据都属于同一个数据类型。

数组类型的所有元素都属于同一种类型,并且是按顺序存放在一个连续的存储空间中,即最低的地址存放第一个元素,最高的地址存放最后一个元素。

数组类型的优点有:

1)让一组同一类型的数据共用一个变量名,不需要为每一个数据都定义一个名字

2)有余数组的构造方法采用的是顺序存储,从而可以对数组中的元素按同一方式进行各种操作。

需要说明的是:数组元素的次序是由数组下标确定的,下表是从0开始的。

 

3、数组中的元素可以用数组名和下标来唯一确定。数组可以是一维数组、二维数组、多维数组以及字符数组等。一维数组只有一个下标,多维数组有多个下标。

一维数组的定义形式如下:

数据类型 [存储器类型] 数组名 [常量表达式];

各部分说明书下:

数据类型:知名数组中各个元素的数据类型

[存储器类型]:这是一个可选项,它指出该数组所在的存储空间

数组名:数组的标识符,它的定义方法与变量的命名方法一样。

常量表达式:即数组的下标。它指明数组的长度,即该数组有多少个元素,常量表达式必须用方括号[]括起来,而且必须是一个确定的值,不能是一个变量。

4、一维数组元素的赋值

一维数组元素的赋值方法有以下几种:

1)在定义数组时赋值,例如:

int a[10]={0,1,2,3,4,5,6,7,8,9};

数组元素的下标从0开始,赋值后,a[0]=0,a[1]=1.以此类推,直到最后一个元素a[9]=9。

2)对于一个数组,也可以部分赋值,例如

int b[10]={0,1,2,3};

这里只对前4个元素赋值,对于没有赋值的b[4]到b[9],默认的初始值为0

3)如果一个数组元素的全部元素都已赋值,可以省去方括号中的下标,例如

int c[]={0,1,2,3,4,5};

数组元素的赋值与普通变量的赋值相同。可以把数组元素像变量一样使用。

 

5、本例演示一维数组的使用实例

在keil c51中新建工程ex30,编写如下程序代码,编译并生成ex30.hex文件

//实例30:一维数组演示实例

#include <reg51.h>      //包含头文件

void delay(void)      //延时函数

{

  unsigned int i,j;

 for(i = 0;i < 5000;i++)

  for(j = 0;j< 50;j++);

}

void main(void)

{

  unsigned char num[3] = {0x0f,0xf0,0x55};   //定义一个数组,同时给数组赋初值

 P0 = num[0];          //数组的第一个元素送到P0口显示

 delay();          // 延时一段时间

 P0 = num[1];         //

 delay();

 P0 = num[2];

 delay();

 while(1)

 {

 } 

}

6、在proteus中新建仿真文件ex30.dsn,原理图如下图所示

7、将ex30.hex文件载入at89c51中,启动仿真,运行结果依次如下图所示

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐