东南大学9系信息工程学院《程序设计原理07》.pptx
文本预览下载声明
第四章 数 据 类 型
(补充);数据类型的设计、实现与语义;数据类型的设计、实现与语义;4.1数据类型概念的早期发展简史;4.1.1 基本指令系统中的类型因素;4.1.1 基本指令系统中的类型因素;4.1.1 基本指令系统中的类型因素;4.1.1 基本指令系统中的类型因素;4.1.2 汇编语言中的类型 ;4.1.2 汇编语言中的类型;4.1.2 汇编语言中的类型;4.1.2 汇编语言中的类型;4.1.2 汇编语言中的类型;4.1.3 FORTRAN 语言;4.1.4 C 语言;4.1.5 Ada;4.1.5.1 Ada的类型定义机制 ;4.1.5.1 Ada的类型定义机制(续) ;
type Apples is new Integer;
type Oranges is new Integer;
No_Of_Apples: Apples;
No_Of_ Oranges: Oranges;
No_Of_Apples := No_Of_ Oranges; --wrong
No_Of_Apples := Apples (No_Of_ Oranges); --OK
Integer(No_Of_Apples) + Integer(No_Of_ Oranges);
--OK;New Type Vs. Parent Type;4.2 数据类型 ;4.2.1 数据类型概念的组成;4.3 强类型(strong typing) ;4.3.1 强类型 — ST#3;union u_tag{
int ival;
float fval;
char *sval;
} u;
;struct {
char *name;
int flags;
int utype;
union {
int ival;
float fval;
char *sval;
} u;
} symtab[NSYM];;4.3.2 强类型 — ST#4;强类型是一个相对的概念。
有一种说法,认为必须在静态条件下检测出所有的类型错误才算是强类型的。这是一个历史上的看法。现在看来,这样的定义有失简单与片面。现在的通用语言几乎都提供一些动态的数据类型。
;4.4 Ada的数据类型分类体系 ;4.5 Ada语言的枚举类型 ;4.5.1 枚举类型举例;4.5.2 属性与操作;4.5.3 布尔类型;4.6 Ada的数值类型 ;4.7 带符号整数类型 ;4.7.1 设计考虑;4.7.2 例子;4.8 Ada的实数类型 ;4.9 浮点类型 ;4.10 定点类型 ;4.11 Ada的数值类型总结;4.12 数组类型 ;4.12.1 例子;Hours_Worked: array(Day) of Float;
For D in Workday loop
Hours_Worked(D) := 8.0;
End loop;
Hours_Worked(Sat) := 0.0;
Hours_Worked(Sun) := 0.0;;Work_Day: constant array(Day) of Boolean := (True, True, True, True, True,False, False);
Tomorrow: constant array(Day) := (Tue, Wed, Thu, Fri, Sat, Sun, Mon);;匿名类型;可见正常情况下匿名类型的变量是无法和程序中的其它变量发生联系的,所以,在Ada语言中变量正常使用的前提是必须为它声明有名类型。
Anonymous type and named type的使用原则,该原则也适用于其它类型的问题。;4.12.2 动态数组;补充说明;4.12.3 操作 ;对multidimensional arrays采用row-major order。在与其它语言(如Fortran)混合编程时,可以采用适当的pragma提示编译器改用column-major order。
;C#语言的数组类型: rectangular arrays, jagged array. ;4.13 指针类型 ;4.13.1?? 指针概念、指针空挂与垃圾回收;4.13.1?? 指针概念、指针空挂与垃圾回收(2);指针空挂和垃圾回收是两个相对的概念。
指针空挂和垃圾回收的后果是不同的。垃圾不及时回收仅仅是消耗系统资源而已,在资源耗尽之前不会造成
显示全部