1 / 20
文档名称:

第六讲 单片机C语言(2).ppt

格式:ppt   页数:20
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第六讲 单片机C语言(2).ppt

上传人:中国课件站 2011/8/30 文件大小:0 KB

下载得到文件列表

第六讲 单片机C语言(2).ppt

文档介绍

文档介绍:第六讲单片机C语言(2)
C51构造数据类型
1. 数组
►一维数组的定义
类型说明符数组名[常量表达式]
如 int a[10]; //表示数组名为a,数组类型为整型,共10个元素。
数组必须先定义再使用。
数组元素的表示形式为: 数组名[下标] 如 a[0] a[1]
►一维数组的初始化
①在定义数组时对数组元素赋以初值
如 int a[10]={0,1,2,3,4,5,6,7,8,9};
②可以只给一部分元素赋值
如 int a[10]={0,1,2,3,4}; //后5个元素的值均为0。
③对全部数组元素赋值时,可以不指定数组长度。
如 int a[ ]={0,1,2,3,4,5,6,7,8,9};
►二维数组的定义
类型说明符数组名[常量表达式] [常量表达式] 如 int a[2][5]
►二维数组的初始化
如 int a[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12} };
或 int a[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
对数组中部分元素赋值如 int a[3][4]={ {1},{2},{3} }; int a[3][4]={ {1},{ }, {5,6} };
►字符数组的定义
与以上同, 如 char c[10];
►字符数组的初始化
给数组元素逐个赋值如 char a[10]={‘z’,’h’,’o’,’n’,’g’,’G’,’u’,’o’,’‘};
用字符串赋值如 char a[ ]={“ZhongGuo”}; char a[ ]=“ZhongGuo”;
2. 指针
►概念
变量的指针: 一个变量的地址称之为“这个变量的指针”。
指针变量:如果专门使用一个变量来存放另一变量的地址,则该变量称为指针变量。
►指针变量的定义
基类型* 指针变量名
为了能够在程序运行时获得变量地址,以及能够使用指针所指变量的值,C语言提供了2个运算符:
①& 取地址运算符。
②* 指针运算符或“间接访问”运算符。
如&a 为变量a的地址, *point 为指针变量point所指向的存储单元的值。
3. Keil C51的指针类型
►基于存储器的指针
这些指针的长度可为1字节(idata *, data *, pdata *)或2字节(code *, xdata *)
如 char xdata *px; //在xdata存储器中定义了一个指向字符类型的指针,长度为2字节,值为0~0xffff。
char xdata *data pdx; //明确定义指针位于80C51内部存储区(data)中,其他同上例。
data char xdata *pdx; //与上例完全相同。
存储器类型定义既可放在定义开头,也可直接放在定义的对象之前。
►一般指针
一般指针包括3字节:2字节的偏移量和1字节的存储器类型。
其中第1个字节表示指针的存储器类型,存储器类型编码如下:
如一个一般指针指向地址为0x1234的xdata类型数据时,其指针值如下表。
4. 结构
►定义结构的类型
struct 结构名
{ 结构成员说明
};
结构成员说明的格式为:
类型标识符成员名;
例 struct date
{ unsigned char month;
unsigned char day;
unsigned int year;
};
►定义结构类型变量
①先定义结构的类型,再定义该结构的变量名。
例 date dt1, dt2; //定义两个数据类型为date的变量dt1和dt2。
②在定义结构类型的同时定义该结构的变量
struct 结构名
{ 结构成员说明
} 变量名1,变量名2 …变量名n;
③直接定义结构类型变量
struct
{ 结构成员说明
} 变量名1,变量名2,…变量名n;
►结构类型变量的引用
对结构所执行的操作,只能用“&”运算符取结构的地址,或对结构变量的成员分别加以引用,引用方式为:
结构变量名. 成员名;
例 = 2005;
其中“.”是成员运算符,“→”符号和“.”符号相同,一般多级引用时,最后一级用”.”,高的级别用“→”。
5. 用typedef定义类型
在C语言中可用typedef声明新的类型名来代替已有的类型名。
例如 typedef int INTEGER;
typedef float REAL;
用INTEGER代表int 类型,REAL代表float。
函数
一个较大的程序一般由若干个程序模块组成,每个模块用来实现一个特定的功能,所有高级语言都有子程序这一概念,程序的各模块正是通过子程序来实现。而子程序的作用是由函数来完成。
一个完整的C程序可由一个主函数和若干个函数组成,由主