您的位置:首页 > 其它

章节导学第10章 用户自定义数据类型

2012-09-13 14:30 197 查看
顾名思义,用户自定义数据类型是程序员自己定义的数据类型。数据类型规定了存储单元的类型,用于定义变量。编译系统不太可能会处理程序员“发明的”“全新的”数据类型,因此,自定义数据类型中的“自定义”是有条件的。程序员只能在C语言“基本数据类型”的基础上,通过限定或组合来定义“新的”“自己的”数据类型。

结构型是最典型的自定义数据类型,与之相关的存储单元由多个类型不同的基本类型存储单元组合而成。当定义一个结构型变量时,就会申请一个这样的存储单元,其中属于它的多个基本类型存储单元都有一个内部的名称,整个存储单元由结构型变量名代表。数组变量虽然也包含了多个存储单元,但实际上通常只使用它表现为基本类型的数组元素。使用结构型变量时多数情况下也是使用其中的某个基本类型存储单元,用结构体成员操作符(.)把结构型变量名和内部的名称结合起来就是相关存储单元的变量名。这样看来,结构型与数组类似,数组变量是多个同类型变量的代表,它包含了多个数组元素,而结构型变量是多个不同类型变量的代表,它包含了多个成员变量。

结构型的作用与数组的不同,结构型变量用于存储程序中属于同一个对象的不同属性的数据。面向对象程序设计语言中的类就是由结构型改进而来。面向对象程序设计语言有C++、Java、C#等,而C语言是典型的结构化程序设计语言。

对于非void型指针变量p,语句p=&p;错误。对于结构型变量s,类似s.next =&s;的语句则可以将多个同类型的结构型变量连接起来串成链表(s.next为变量s的一个成员变量)。链表的作用与数组的类似,将多个数据(变量)组织起来,数据之间有了“次序”,便于用统一的方法进行处理。

联合型变量也包含了多个成员变量,但它们共享存储单元,这就意味着在某个时刻只有一个成员变量是真正可以使用的。有时可以利用一个联合型变量代替多个普通变量以减少程序对存储空间的需求。

枚举型变量只能取定义枚举型时所规定的“标识符”。虽然枚举型本质上是整型,枚举型的“标识符”也只是符号常量,但是,采用枚举型可以极大地提高程序的可读性,同时由于限制了“整型”的取值范围,可以避免程序中用错误的数据给变量赋值,防止出现逻辑错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: