基于proteus的51单⽚机仿真实例四⼗⼆、C语⾔的⼆维数组演
⽰实例
1、C语⾔允许使⽤多维数组,最简单的多维数组是⼆维数组,定义多维数组时,在要在数组名后⾯增加相当于维数的常量表达式即可。
对于⼆维数组,其定义形式为:
数据类型 [存储器类型] 数组名[常量表达式1][常量表达式2];
例如,定义⼀个⽆符号字符型⼆维数组,
unsigned char m[3][4];
⼆维数组以⾏列矩阵的形式存储,第⼀个下标代表⾏,第⼆个下标代表列。上⼀数组中个元素的排列顺序如下
m[0][0],m[0][1],m[0][2],m[0][3],
m[1][0],m[1][1],m[1][2],m[1][3],
m[2][0],m[2][1],m[2][2],m[2][3],
2、⼆维数组的赋值⽅法有两种:
1)按存储顺序整体赋值,这是⼀种⽐较直观的赋值⽅式,例如
int m[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
如果是给全部元素赋值,可以不指定⾏数,例如
int m[][4]={0,1,2,3,4,5,6,7,8,9,10,11};
2)按每⾏分别赋值。为了能更直观的给⼆维数组赋值,可以按每⾏分别赋值,这是要⽤
{}把每⾏的值包含起来,没有赋值的部分默认为0,例如
int m[3][4]={{0,1,2,3}
{4,5,6,7}
{8,9}};
最后两个元素没有赋值,默认为0,即m[2][2]=0,m[2][3]=0。
3、数组的定义要注意以下⼏个问题:
1)数组名的命名规则同变量名的命名规则⼀样,要符合C语⾔标识符的命名规则
2)数组名后⾯的中括号[]是数组的标志,不能⽤圆括号或其他符号代替
3)数组元素的个数必须是⼀个固定的值,可以是整型常量、符号常量或者整形常量表达式。
4、本例创建⼀个⼆维数组num[3][4],然后从数组中选取3个数组元素num[0][0],num[1][2],num[2][3].然后分别将这三个元素送到P0⼝显⽰
5、在keil c51中新建⼯程ex31,编写如下程序代码,编译并⽣成ex31.hex⽂件
//实例31:⼆维数组演⽰实例
#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][4] = {{0x0f,0xf0,0x55,0xaa} ,
{0x01,0x02,0x03,0x04} ,
{0x05,0x06,0x07,0x08}};  //定义⼀个数组,同时给数组赋初值
P0 = num[0][0];          //数组的第⼀个元素送到P0⼝显⽰
delay();          // 延时⼀段时间
P0 = num[1][2];        //
delay();
P0 = num[2][3];
delay();
while(1)
{
}
}
6、在proteus中新建仿真⽂件ex31.dsn,原理图如下图所⽰
c语言二维数组表示方法7、将ex31.hex⽂件载⼊at89c51中,启动仿真,运⾏结果依次如下图所⽰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。