数组函数指针优秀课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二维数组的初始化可以有如下三种方式: 1.初始化方法1
逐行给出数组元素值,示例如下: int sum[2][5]={ {5,4,3,2,1}, {-6,-4,6,3,0}}; 2.初始化方法2 按顺序逐个给出数组元素,示例如下: int sum[2][5]={5,4,3,2,1,-6,-4,6,3,0}; 3.初始化方法3 二维数组也可以进行局部初始化,示例如下:
unsigned char i,j;
for (i=0;i<6;i++)
{ b[i]=a[i];
//一维数组赋值
}
for (i=0;i<3;i++)
{ for (j=0;j<4;j++)
{ k[i][j]=d[i][j]; //二维数组赋值
}
}
while(1); //暂停
}
二、指针 在C51程序中,访问或修改变量可以通过两种方式来实 现。 一种是直接访问或修改这块区域的内容来实现的; 另一种是先求出变量的地址,然后再通过地址对该变量 的值进行访问,这就是本节所要讲解的指针及指针变量。
2. 二维数组
定义多维数组时,只要在数组名后面增加相应于维数的 常量表达式即可。二维数组的定义格式为:
数据类型 [存储器类型] 数组名 [常量表达式1] [常量表 达式2] ;
例: int ch[10][20]; 该语句声明ch为(10,20)的二维整型数组,其有10 行20列,共200个元素。 和其他大多数计算机语言不同的是,C51不使用逗号区 分下标,而是用方括号将各维下标括起。 另外,数组的二维下标均从0计算。例如,要存取数组 ch中下标为(3,5)的元素可以写成:ch[3][5]
int count[10]; //声明整型数组count,共10个元素。
在C51语言中,一维数组的一般说明形式如下: 类型说明符 数组名[常量表达式]; 如果,在声明数组时就给数组进行初始化赋值,可以采 用如下的形式: 类型说明符 数组名[常量表达式]={值,值,…,值}; 一维数组声明示例如下: int a[4]={1,2,3,4} ; //数组元素中的对应关系图
1.地址、指针和指针变量的概念 地址:是单片机内存单元的编号。通常一个字节称为一 个内存单元。 指针:实际上也是一个地址,其表示的是一个变量在内 存中的首地址。不同的数据类型所占用的内存单元数和它 的大小有关。 在C51语言中,根据数据类型或数据结构的不同,一个 变量往往都占有一组连续的内存单元,单用“地址”这个 概念并不能很好地描述这个变量,从而引进了“指针变量 ”的概念。指针变量是指向一个数据结构的首地址,因而 概念更明确,寻址更方便。
义数组,才能使用下标变量。另外,程序中只能逐个地使 用下标变量,而不能一次引用整个数组。
数组元素的初始化赋值 是指在数组声明的时候给数组元素赋予初值。数组初始 化是在编译阶段进行的。这样将减少程序运行时间,提高 效率。数组元素初始化赋值的一般形式为: 类型说明符 数组名[常量表达式]={值,值……值}; 在{ }中的各数据值即为各元素的初值,各值之间用逗号 间隔。示例如下: int a[10]={0,1,2,3,4,5,6,7,8,9}; 该语句相当于赋值语句a[0]=0,a[1]=1,…,a[9]=9。
数组函数指针
一、数组 数组:把具有相同数据类型的若干变量按有序的形式组织 起来的集合。其中,数组中的单个变量称为数组元素。 数组属于构造数据类型。一个数组可以分解为多个数组元 素,这些数组元素可以是基本数据类型或是构造类型。 按照数组元素所属的基本数据类型的不同,数组又可分为 数值数组、字符数组、指针数组、结构数组等各种类别。 在C51语言中,数组可以是一维的,也可以是多维的。
1. 一维数组
一维数组的定义格式为: 数据类型说明符 [存储器类型] 数组名 [常量表达式] ; 其中,数据类型说明数组中各元素的数据类型;存储器 类型是可选项,它指出定义的数组所在的存储空间;数组 名是整个数组的变量名;常量表达式说明了该数组的长度 ,即数组中元素的个数,常量表达式必须用方括号“[ ]” 括起来,而且其中不能含有变量。 例如:char math [60] ; //定义math数组为字符型,数组 元素个数为60个。
int num[4][4]={{1,2,3,4},{-2,0,-1,3},{7,10,-9,6}};
二维字符串数组 它是二维数组的特殊形式,其元素值为字符。二维字符 串数组的定义形式如下: char 数组名[常量表达式1][常量表达式2]; 其中,左下标决定字符串的个数,右下标说明字符串的 最大长度。 二维字符串数组的声明示例如下: char str[3][80]; 该语句声明了一个二维字符串数组,可存放3个字符串 ,单个字符串的最大长度为80个字符。
字符数组: 在C51语言中,字符串被定义为一个以空字符结束的字 符数组。其中空字符以“\0”来标识,它一般是不显示的。 因此,在程序中声明字符数组时,必须声明一个比要存的 字符串多一个字符的数组,最后一位用来存空字符“\0”。 例如,假如要定义一个存放长度为20的字符串的数组s ,可以写成:char s[21]; 这样就给字符串末尾的空字符保 留了空间。 char a[]={“ZhongGuo”}; char a[9]=“ZhongGuo”;
例:数组赋值,观察存储空间
ห้องสมุดไป่ตู้
#include "reg52.h"
void main()
{ unsigned char a[6]={0,1,2,3,4,5}, b[6];
int d[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}, k[3][4];
char ch[]={"abcdABCD"};
数组元素的表示:
数组元素是组成数组的基本单元。在C51语言中,数组 元素也是一种变量,其标识方法为数组名后跟一个下标。 下标表示了元素在数组中的顺序号。
数组元素的一般形式为:数组名[下标] 这里的下标只能为整型常量或整型表达式。例如,
a[6]、a[i+j]、a[i++]都是合法的数组元素。 数组元素通常也称为下标变量。在C51语言中必须先定