分类: C/C++
2008-07-05 14:26:22
自定义数据类型
枚举型数据结构
用户可以自己定义一种数据类型,把这种数量类型的变量的可能值一一列举出来,然后就可以使用这种数据类型来定义比常量了,用这种新的数据类型称为枚举类型
Enum 新的数据类型名称{变量值列表}
例如
Enum weekday {sum ,mon,tus,wed,thu,fri,sat};
新的数据类型 ,枚举元素或枚举常量
定义一个weekday类型的变量
Weekday day;
变量取值范围为类型定义时,表里列举出来的七种标识符,把这些符号作符号常量对待
注意:zh
类型定义后,对枚举元素按常量处理,能对它们赋值
枚举元素具有默认值,它们依次为:0.1.2.....
也可以在类型声明时另行指定枚举类型的值
枚举值可以进行关系运算
整数值不能直接赋值给枚举变量,如需要将整数值赋给枚举变量,应进制类型转换
枚举常量在机器内部仍然时用整型数来存取
在定义变量时要给变量分配存储空间,那么定义某个枚举类型的变量时!分配几个内存空间呢?(枚举元素默认按整数(int)处理!)
结构类型
把意义密切相关的一组数据组合成一个整体,即由各种数据类型(基本数据类型或已知自定义数据类型)的数据组组成的一个集合.
Struct name
{
数据类型说明符1 成员1;
数据类型说明符2 成员2;
数据类型说明符3 成员3;
数据类型说明符4 成员4;
..
}
例如
Struct student
{
Int num ;
Char name[20];
Int age;
Float score;
Int row}
结构类型的变量所占的存储空间是结构中所有成员所占空间的总和
赋值
同时赋值
Student s2={123151,“dfds”,18,20}
单独赋值
S1.name=“dsf”; s1.num=“154231”;
属于同一结构的各个变量之间可以相互赋值,和数组不同,数组名是常量,结构类型的变量可以赋值,不同结构的变量不可以相互赋值,即使这两个变量可能具有同样的成员
结构类型与指针
指向新定义的结构,当然也可以是自定义的结构类型,
也可以将结构变量的地址赋给结构指针,
用结构指针访问成员变量
结构类型与数组
结构数组的每个元素都是该结构类型的变量
结构类型与函数
用结构变量作为函数参数,属于按
值传递,这时结构变量中所有成员的值都被意义赋值到形参中
用结构变量作为函数参数,也可以按引用传递,这时仅仅吧结构变量
的地址穿个形参,而不用把结构变量的成员一一复制.
函数的返回值,也可以是某个结构类型,以结构变量作为函数的返回值,到主函数中
需要把结构值复制到主函数中,效率低,同时也可以用结构的引用(指针),不能
返回一个局部结构变量的引用或指针