第5章 Cx51构造数据类型(4学时)

合集下载

C51的数据类型

C51的数据类型

C51的数据类型C51是一种广泛应用于嵌入式系统开发的微控制器系列,其数据类型是指变量在内存中所占用的空间大小和表示范围。

了解C51的数据类型对于编写高效、可靠的嵌入式程序至关重要。

本文将详细介绍C51的数据类型,包括基本数据类型和派生数据类型。

一、基本数据类型1. 位(bit)类型:用于表示二进制位,只能存储0或1。

在C51中,位类型用关键字bit声明,占用1位空间。

2. 无符号整型(unsigned int):用于表示非负整数,范围从0到65535。

在C51中,无符号整型用关键字unsigned int或unsigned声明,占用2个字节(16位)空间。

3. 有符号整型(signed int):用于表示有正负号的整数,范围从-32768到32767。

在C51中,有符号整型用关键字int或signed声明,占用2个字节(16位)空间。

4. 字符型(char):用于表示字符,范围从-128到127。

在C51中,字符型用关键字char声明,占用1个字节(8位)空间。

5. 单精度浮点型(float):用于表示带小数点的数值,范围从3.4E-38到3.4E38。

在C51中,单精度浮点型用关键字float声明,占用4个字节(32位)空间。

6. 双精度浮点型(double):用于表示更大范围的带小数点的数值,范围从1.7E-308到1.7E308。

在C51中,双精度浮点型用关键字double声明,占用8个字节(64位)空间。

二、派生数据类型1. 数组(array):由相同类型的元素组成的数据结构,用于存储一组相关的数据。

在C51中,数组的声明方式为:数据类型数组名[数组长度]。

例如,int numbers[10]表示一个包含10个整数的数组。

2. 结构体(structure):由不同类型的成员变量组成的数据结构,用于存储多个相关的数据。

在C51中,结构体的声明方式为:关键字struct 结构体名 { 成员变量1; 成员变量2; ... }。

C51语言设计基础--数据类型及函数

C51语言设计基础--数据类型及函数

1内容:存贮器类型偏移高位偏移低位第一个字节代表了指针的存贮器类型,存贮器类型编码如下:存贮器类型 IDATA XDATA PDATA DATA CODE值 1 2 3 4 5使用其它类型值可能导致不可预测的程序动作。

XDATA类型的0x1234地址作为指针表示如下:地址: +0 +1 +2内容: 0x02 0x12 0x34当用常数作指针时,必须注意正确定义存贮器类型和偏移。

下例将值0x41写入绝对地址为0x80 00的外部数据存贮器:#define XBYTE ((char *)0x20000L)XBYTE[0x8000]=0x41;上例中用其它常数索引或索引变量也起作用。

这样,各种存贮器类型的绝对地址可以一种非常有效的方式访问。

但有一个例外,即SFR。

注意:绝对地址定义为“long”型常量,低16位包含偏移,高8位表明了xdata类型。

为了表示这种指针,必须用长整数来定义存贮器类型。

C51编译器不检查指针常数,用户必须选择有实际意义的值。

1.2.6 float“float”类型为4个字节(32位),使用的格式与IEEE-754标准(32位)具有24位精度,尾数的高位始终为“1”,因而不保存,位的分布如下:l 1位符号l 8位指数位l 23位尾数符号位是最高位,尾数为最低的位,内存中按字节存贮如下:地址: +0 +1 +2 +3内容: MMMM MMMM MMMM MMMM E MMM MMMM S EEE EEEE其中: S:符号位,1=负,0=正E:指数(在两个字节中),偏移为127M:23位尾数,最高位“1”浮点值——12.5的十六进制为0xC1480000,它按下面方式存贮:地址: +0 +1 +2 +3内容: 0x00 0x00 0x48 0xc18051不包括捕获浮点错误(例外)的中断向量。

用户软件因此必须对错误条件作出适当反应。

下面推荐一种方法(也可以用其它可靠办法):“union”用来保存浮点值,这个“union”必须包括一个“float”和一个“unsigned long”,以根据IEEE对错误作出响应。

第5章 Cx51构造数据类型(4学时)

第5章 Cx51构造数据类型(4学时)

2 枚举变量的取值 p122
如果有 enum direct {up,down,left=10,right}; 则有
clerk1.birthday.year=1957;
//只能给最后一级的成员赋值
floatsum=clerk1.wages+cle rk2.wages;
5.3.2 结构数组
也可定义为: struct{ struct string{ char char name[8]; name[8]; char sex[2]; char sex[2]; int age; int age; char addr[40]; char }; addr[40]; struct string student[40]; }student[40 ];


1.指针变量定义 类型标识符 *指针名1, *指针名2,…; *表示变量为指针变量;

int a,b,c; int *ap,*bp,*cp; 编译后变量定位
变量赋值
a=6; b=8; c=10; 编译后
2.指针变量的引用(赋值)
ap=&a;
ap=&b;
ap=&c;
例 p110
注意:
1)p109
最后一行应是 *(p+1)+3; 2) p110 第一行应是 *(*(p+1)+3); 3) p110 第3-4行行首都应 加*号;
5.2.4 关于KEIL Cx51的指针 类型 p110-111
1
基于存储器的指针(1-2个字节) char xdata *px; char xdata *data pdx; 上述二者的区别: 1)定义1中指针的存放由编译模式 决定; 2)定义2明确指出指针位于内部存

C51常用数据类型

C51常用数据类型

C51常用数据类型在C51单片机编程中,常用数据类型是指用于存储不同类型数据的变量类型。

C51常用数据类型包括整型、字符型、浮点型和指针型。

下面将详细介绍每种数据类型的特点和用法。

1. 整型数据类型整型数据类型用于存储整数值,包括有符号整型和无符号整型。

有符号整型可以表示正数、负数和零,而无符号整型仅能表示非负数(正数和零)。

C51常用的整型数据类型有:- char:有符号字符型,占用1个字节(8位),表示范围为-128到127。

- unsigned char:无符号字符型,占用1个字节(8位),表示范围为0到255。

- int:有符号整型,占用2个字节(16位),表示范围为-32768到32767。

- unsigned int:无符号整型,占用2个字节(16位),表示范围为0到65535。

- long:有符号长整型,占用4个字节(32位),表示范围为-2147483648到2147483647。

- unsigned long:无符号长整型,占用4个字节(32位),表示范围为0到4294967295。

整型数据类型适用于存储整数值,如计数器值、传感器数据等。

2. 字符型数据类型字符型数据类型用于存储单个字符,采用ASCII码表示。

C51常用的字符型数据类型是char,占用1个字节(8位)。

字符型数据类型适用于存储字母、数字、标点符号等单个字符。

3. 浮点型数据类型浮点型数据类型用于存储带有小数部分的数值。

C51常用的浮点型数据类型是float,占用4个字节(32位)。

浮点型数据类型适用于存储需要进行精确计算的数值,如测量数据、传感器数据等。

4. 指针型数据类型指针型数据类型用于存储变量的地址。

C51常用的指针型数据类型是指针变量名加上"*"符号。

指针变量存储的是内存地址,可以通过指针访问该地址上存储的数据。

指针型数据类型适用于需要直接操作内存地址的情况,如动态内存分配、函数指针等。

C51数据类型

C51数据类型

C51数据类型引言概述:C51是一种常用的单片机系列,其数据类型在编程中起着至关重要的作用。

了解C51数据类型的特点和用法,对于编写高效且可靠的程序至关重要。

一、基本数据类型1.1 位数据类型:C51中的位数据类型用于表示单个位的值,可用于控制寄存器的位操作。

1.2 字符数据类型:C51中的字符数据类型用于表示单个字符,占用一个字节的内存空间。

1.3 整数数据类型:C51中的整数数据类型包括有符号和无符号整数,可用于表示不同范围的整数值。

二、数组和指针数据类型2.1 数组数据类型:C51中的数组数据类型用于存储相同类型的多个元素,可以通过下标来访问数组中的元素。

2.2 指针数据类型:C51中的指针数据类型用于存储变量的内存地址,可以通过指针来访问变量的值。

三、结构体和联合体数据类型3.1 结构体数据类型:C51中的结构体数据类型用于将多个不同类型的变量组合成一个整体,方便对相关数据进行管理。

3.2 联合体数据类型:C51中的联合体数据类型用于共享相同的内存空间,不同成员变量共享同一个内存地址。

四、枚举数据类型4.1 枚举数据类型:C51中的枚举数据类型用于定义一组具有相同类型的常量,可以增加程序的可读性和可维护性。

4.2 枚举变量:枚举变量可以通过枚举类型来定义,每个枚举变量对应一个整数值。

4.3 使用枚举:可以通过枚举类型来定义状态、标志等常量,提高程序的可读性。

五、特殊数据类型5.1 位段数据类型:C51中的位段数据类型用于定义结构体中的位段,可以按位对结构体成员进行访问。

5.2 常量数据类型:C51中的常量数据类型用于定义程序中不可更改的常量,提高程序的可维护性。

5.3 自定义数据类型:C51还支持用户自定义数据类型,可以根据实际需求定义新的数据类型,增加程序的灵活性。

结论:通过了解和掌握C51数据类型的特点和用法,可以更好地编写高效且可靠的程序。

合理选择和使用不同的数据类型,可以提高程序的性能和可维护性,为单片机应用开发提供更好的支持。

05 C51构造数据类型

05  C51构造数据类型

习题
试用数组设计一个对数表,要求: .数据以一个字节为单位,即设 计从0到255即可; .数据要求放在程序区中; .编写一程序根据给定的值查找 对数表。
第二节
单片机的指针分为有两种:
指针
基于存贮器的指针(后续) 一般指针(不加说明指的都是一般指针) 一般指针需3个字节:1个字节为存贮类型(后续), 2个字节为偏移量。存贮器类型决定了对象所用的8051 存贮器空间,偏移量指向实际地址。一个一般指针可 访问任何变量而不管它在8051存贮器空间中的位置。
本例与上例完全相同。存贮器类型定义既可放在声明的开头 data char xdata *pdx; 也可直接放在声明的对象之前。这种形式是为了与早期C-51
编译器版本兼容。
上面例子阐明了指针的一般声明及使用。它们与所有的数据类型和 存贮器类型相关。所有用于一般指针的操作同样可用于基于存贮器的指 针。
十、指针数组的应用例子
a[0][0]
a[1][0] a[2][0]
a[0][1] a[1][1] a[2][1]
a[0][2] a[1][2] a[2][2]
a[0][3] a[1][3] a[2][3]
四、二维数组的初始化
1. 定义二维数组时给全部元素赋初值, 例:int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; 2. 分行给二维数组的全部元素赋初值, 例:int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}}; 3. 只对数组部分元素初始化, 例:int a[3][4]={{1},{5},{9}}; 其结果为一距阵形式: 1 0 0 0 5 0 0 0 9 0 0 0 4. 在二维数组的全部元素赋初值时,可以省略第一维下标, 例:int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};

第5章_Cx51构造数据类型


(2)只能给元素逐个赋值,不能给数组整体赋值。 )只能给元素逐个赋值,不能给数组整体赋值。 例如:给十个元素全部赋 值 只能写为: 例如:给十个元素全部赋1值,只能写为: int a[10]={1,1,1,1,1,1,1,1,1,1}; 而不能写为: 而不能写为: int a[10]=1; (3)不给可初始化的数组赋初值,则全部元素均为 值。 )不给可初始化的数组赋初值,则全部元素均为0值 (4)如给全部元素赋值,则在数组说明中, 可以不给出数组 )如给全部元素赋值,则在数组说明中, 元素的个数。 元素的个数。 例如: 可写为: 例如: int a[5]={1,2,3,4,5}; 可写为: int a[]={1,2,3,4,5};
常量表达式——数据元素的个数,也称为数组的长度。 数据元素的个数,也称为数组的长度。 常量表达式 数据元素的个数
例如: 例如:
int data a[10]; 说明整型数组 ,有10个元素。 说明整型数组a, 个元素。 个元素 float xdata b[10], c[20]; 说明实型数组 ,有10个元素,实型 说明实型数组b, 个元素, 个元素 数组c, 个元素。 数组 ,有20个元素。 个元素 char data ch[20]; 说明字符数组 ,有20个元素。 说明字符数组ch, 个元素。 个元素 对于数组类型说明应注意以下几点: 对于数组类型说明应注意以下几点:
2、字符数组的初始化 、
char c[10]={`c`,` `,`p`,`r`,o`,g`,r`,`a`,`m`};
C语言允许用字符串的方式对数组作初始化赋值。 语言允许用字符串的方式对数组作初始化赋值。 例如: 例如: char c[ ]={'c', ' ','p','r','o','g','r','a','m'}; 可写为: 可写为: char c[ ]={"C program"}; 或去掉{ }写为: 或去掉 写为: 写为 char c[ ]="C program"; 字符串总是以'\0'作为串的结束符 作为串的结束符。 字符串总是以 作为串的结束符。因此当把一个字符 串存入一个数组时, 也把结束符'\0'存入数组 存入数组, 串存入一个数组时, 也把结束符 存入数组,并以此作 为该字符串是否结束的标志。 为该字符串是否结束的标志。 用字符串方式赋值比用字符逐个赋值要多占一个字节, 用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\0'。 用于存放字符串结束标志 。

第5章C51构造数据类型

指针
2000 2001 2002 2003 2004 2005 2006 2000 …...
整型变量i 整型变量
重 点 区 分
变量的地址 变量的地址
10
变量的内容 变量的内容 指针变量 变量i_pointer
指针变量 变量地址 指针) 变量地址(指针 指针 指向 变量 变量值
…...
地址存 入 指针变 量
内存单元两个基本概念: 1、内存单元的地址;2、内存单元的内容 内存对该单元的的编号 表示该单元在整个内存 单元中的位置 该内存单元中存放的 数据
变量与内存单元对应关系: 1、变量的变量名与内存单元的地址相对应; 2、变量的变量值与内存单元的内容想对应;
变量与地址关系: 变量与地址关系:
内存中每个字节有一个编号-----地址 内存
赋值后的数组元素:
例2
float xdata ary2d [10] [10]; float xdata x; x = ary2d [5] [0];
执行结果是:取ary2d [ ] [ ]的第六行第一个元 六 一 素值赋给变量 x;
§ 5.1.3 字符数组 字符数组: 基本类型为字符类型的数组
字符串常量:用双括号“ ”括起来的一串字符 ; 字符的ASCII码值:用单括号’’括起来的字符; ASCII ; 字符数组置初值的方法: 将各个字符逐个赋给数组中的各个元素 例 char a[5]={‘B’,’o’,’y’ ,’\0 ’}; B a[0] o a[1] y a[2] \0 a[3] _ a[4] 字符串 结束标志 系统自动 赋予空格
等价于 app=a;
2、通过指针引用数组元素 、
3、指针变量的运算
§ 5.2.3 指向多维数组的指针和指针变量

C51的数据类型

C51的数据类型引言概述:C51是一种常用的8位单片机,其数据类型在程序设计中起着至关重要的作用。

了解C51的数据类型对于编写高效、可靠的程序至关重要。

本文将从基本数据类型、扩展数据类型、特殊数据类型、用户定义数据类型和常见数据类型错误等五个方面详细介绍C51的数据类型。

一、基本数据类型:1.1 位类型:bit类型用于表示单个位的数据,只能取0或1两个值。

1.2 字节类型:byte类型用于表示一个字节的数据,取值范围为0到255。

1.3 整型:int类型用于表示整数数据,取值范围为-32768到32767。

二、扩展数据类型:2.1 无符号整型:unsigned int类型用于表示无符号整数数据,取值范围为0到65535。

2.2 长整型:long类型用于表示长整数数据,取值范围为-2147483648到2147483647。

2.3 无符号长整型:unsigned long类型用于表示无符号长整数数据,取值范围为0到4294967295。

三、特殊数据类型:3.1 浮点型:float类型用于表示浮点数数据,可以表示小数。

3.2 双精度浮点型:double类型用于表示双精度浮点数数据,精度更高。

3.3 字符型:char类型用于表示字符数据,取值范围为-128到127。

四、用户定义数据类型:4.1 枚举类型:enum类型用于定义枚举类型,可以为一组数值起别名。

4.2 结构体类型:struct类型用于定义结构体类型,可以将不同类型的数据组合在一起。

4.3 联合类型:union类型用于定义联合类型,不同成员共享同一内存空间。

五、常见数据类型错误:5.1 数据类型不匹配:在赋值或比较时,数据类型不匹配可能导致程序错误。

5.2 数据类型溢出:数据类型溢出可能导致数据丢失或错误计算。

5.3 数据类型转换:数据类型转换时需要注意精度丢失和溢出的问题,避免数据错误。

总结:C51的数据类型包括基本数据类型、扩展数据类型、特殊数据类型、用户定义数据类型和常见数据类型错误。

C51的数据类型

C51的数据类型C51是一种经典的8位单片机系列,广泛应用于嵌入式系统开发中。

在C51的编程中,数据类型的选择和使用对于程序的性能和可靠性至关重要。

本文将详细介绍C51的数据类型及其使用方法。

一、基本数据类型1. 位(bit):C51中最小的数据类型,只能表示0或1。

用于表示开关状态、标志位等。

2. 无符号整数(unsigned int):用于表示正整数,取值范围为0~65535。

3. 有符号整数(int):用于表示整数,包括正整数和负整数,取值范围为-32768~32767。

4. 字符(char):用于表示ASCII码字符,取值范围为0~255。

二、扩展数据类型1. 无符号长整数(unsigned long):用于表示较大的正整数,取值范围为0~4294967295。

2. 有符号长整数(long):用于表示较大的整数,包括正整数和负整数,取值范围为-2147483648~2147483647。

3. 单精度浮点数(float):用于表示小数,包括正小数和负小数,精度为6~7位有效数字。

4. 双精度浮点数(double):用于表示较大范围的小数,精度为15~16位有效数字。

三、数组类型1. 一维数组:由相同类型的元素组成,可以通过索引访问每个元素。

例如,int numbers[10]表示一个包含10个整数的数组。

2. 二维数组:由相同类型的元素组成,可以通过行索引和列索引访问每个元素。

例如,int matrix[3][3]表示一个3行3列的整数矩阵。

四、结构体类型结构体(struct)是一种用户自定义的数据类型,可以包含多个不同类型的成员变量。

通过结构体,可以将多个相关的数据组织在一起。

例如:```cstruct Student {char name[20];int age;float score;};```以上定义了一个名为Student的结构体,包含了姓名、年龄和分数三个成员变量。

五、枚举类型枚举类型(enum)用于定义一组具有相关性的常量,可以提高代码的可读性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


开关控制指示灯程序 p96

1 电路原理

2 程序说明
5.1.2 二维数组
1.二维数组定义 类型说明符 数组名[常量表达式][常量表 达式] 第二角标(0~3) 注意:存取顺序。 num[0][0] num[0][1] num[0][2] 2.二维数组初始化 两种方法 num[0][3] p98

2
定义结构类型变量
声明结构变量有以下的三种方
法: 1)先定义结构,再定义结构变 量;
struct
date{ int month; int day; int year;
2)定义结构的同时,声明结构 变量;
Struct date{ int month; int day; int year; }date1,date2;
举例 p105数据类型[存储器类型1] * [存储器类型2] 标识 符;

[存储器类型1] 表示被定义为基于存储器的指针, 无此选项时,被定义为一般指针。 [存储器类型2] 用于指定指针本身的存储器空间。
char data *c_ptr;
//表示指向的是data区中的char型变量,c_ptr在片 内存储区中;
举例
p112
#define
XBYTE((char*)0x10000L)
1)定义了XBYTE是个指向地址 0x10000L 的字符型指针(或数组)变量; 2)L表示0x10000L是个长整数; 3)0x1(0x01)表示存储类型为1--xdata; 4)地址偏移量为0000,即指针XBYTE指向 xdata的地址为0000的单元;
联合的声明和使用
union in_or_char{ int I; char ch; }cnvt;
Or union in_or_char{ int I; char ch;
结构和联合的区别
本质区别:
联合变量的成员占用同一个
内存空间, 按成员中占用最 大空间那个成员分配;
结构变量中的成员分别独占
自己的内存空间,互相不
5.1 数组 5.1.1 一维数组
1.一维数组定义 类型说明符 数组名[整型表达式] 2.一维数组初始化 三种方法p95
a[0] a[1] a[2] a[3]
1
2
3
4
数组的构成
例题

例1 Int idata a[10]; 例2 请同学解释下列语句的含义。 unsigned int ary[20]; unsigned int x; ary[9]=x;
2 枚举变量的取值 p122
如果有 enum direct {up,down,left=10,right}; 则有
a+i,表示 a[i]元素的地址; *(app+i)就是a[i]; 指向数组的指针变量可以带 下标: app[i]表示*(app+i),与a[i]
数组打印方法1
p107
main(){ int a[10]={1,2,3,4,5,6,7,8,9, 10}; int i; for (i=0;i<10;i++) printf(“%d”,a[i]);
3)直接声明结构变量;
无结构名
Struct { int month; int day; int year; }date1,date2;
对结构的几点说明
1)结构类型与结构体变量是两 个不同的概念; 2)结构体的成员也可以是一个 结构变量;p114 例子 3)结构的成员可以与程序中其 它变量名相同; 4)如果程序中所用到的结构数 目多、规模大,可以将它们集

main(){
5.1.5 数组与存储空间 p101
unsigned
long a=[10][10][10];//4K
unsigned
char b=[10][10][10];//1K
5.2 指针 5.2.1 指针的基本概念 要区分的概念 1.变量名与变量值 2.内存单元地址与内存 内容 3.变量名与内存地址对 应
3 关于指针变量的运算 p108





若先使指针变量p指向数组a[](即 p=a;),则 P++(或p+=1); *p++等价于*(p++),因为 *与++同一 优先级, *自左向右结合,++自右向左结合; *p++与*++p; (*p)++;
例2 p109



实际程序演示。 注意: 1)例2中,P1口只能显示T与Y两个字 符的ASCII码值,不能将字符串显示出 来。问题出在m++实际上增加的是fail 和pass两个数组的脚标,即m分别等于 &m1[0]和&m2[0]或&m3[0],然后将*m 送P1口; 2)若将例2中语句 P1=*m;

num[1][0] num[1][10] num[1][2] num[1][3] num[2][0] num[2][1] num[2][2] num[2][3]
二维数组在内存中的存储
5.1.3 字符数组 p99



1 定义 char a[10]; 2 赋初值 char a[10]={„b‟, „e‟, „i‟, „\0‟};; 3 字符串常量 char a[10]={“bei jing”}; char a[10]=“bei jing”; 4 单引号’’与双引号“”区别
变量与内存单元的关系
•三个整型变量 6,8,10分别存 放在地址为 1000,1002和 1004单元中。
•访问有两种方 法: •1)直接访问 •2)间接访问
指针的两个概念
1)变量的指针—就是变量
的地址 2)指向变量的指针—指针 变量
指针(地址)与指针变量的
区别:
指针变量的定义及引用
=赋值运算
符 &取址运算 符
取址运算符和取值运算符

1.取址运算符“&”
*p=&a的情况
p
&a
*p
2000H
10
a

2.取值运算符“*” 是单目运算符,符合自右至左的结合性。
关于指针运算

p105


若有 int *ap; int a; ap=&a; 则有 *ap与a等价; &*ap与&a等价; *&a表示取a值,即与a等价;



unsigned int a[5]; unsigned int b[3][4]; unsigned int *ap; unsigned int (*bp)[4];//定义了一个 指针变量 指向4个元素的一维数组 ap=a; bp=b;//指向b的第0行首址; bp+1;
5.2.3 指向多维数组的指针 和指针变量
XBYTE[0x8000]=0x41;
5.3
C51的结构
具有相同数据类型的一组
数据:

数组
具有不同数据类型的一组
数据:
5.3.1 结构的定义和引用 p112 1 定义结构的类型
struct 结构名{ 类型说明符 成员名1; 类型说明符 成员名2; }; Struct date{ int month; int day; int year;
数组打印方法2
p107
main(){ int a[10]={1,2,3,4,5,6,7,8,9 ,10}; int i; for (i=0;i<10;i++)
数组打印方法3
p107
main(){ int a[10]={1,2,3,4,5,6,7,8,9 ,10}; int *p; for (p=a;p<(a+10);p++)
3. 结构类型变量的引用 p115
引用规则:
1)结构不能作为一个整体参加 赋值、存取和运算,不能作为 函数参数或返回值; 2)对结构可执行的操作有 &date1;//取结构的地址 dete1.year=2003;//为结构变
dete1.year=2003;
//为结构变量date1的成员year赋 值2003
例 p110
注意:
1)p109
最后一行应是 *(p+1)+3; 2) p110 第一行应是 *(*(p+1)+3); 3) p110 第3-4行行首都应 加*号;
5.2.4 关于KEIL Cx51的指针 类型 p110-111
1
基于存储器的指针(1-2个字节) char xdata *px; char xdata *data pdx; 上述二者的区别: 1)定义1中指针的存放由编译模式 决定; 2)定义2明确指出指针位于内部存
第5章 Cx51的构造数据类型

在C51语言中,除了整型(int)、浮点 型(float)、字符型(char)、无值型 (void)几种基本数据类型外,还有以 这些基本数据类型为基础而构造成的较 复杂的数据结构,即聚合数据类型 (aggregate types)。本章将着重介绍 C51中的几种聚合类型数据结构的定义 及用法,包括数组、指针、结构、联合 (共用体)、枚举数据类型。灵活利用 这些数据结构可以简化程序的设计。


1.指针变量定义 类型标识符 *指针名1, *指针名2,…; *表示变量为指针变量;

int a,b,c; int *ap,*bp,*cp; 编译后变量定位
变量赋值
a=6; b=8; c=10; 编译后
相关文档
最新文档