C数据类型指针类型空类型void定义类型typedef构造类型枚举类型enum数组结构体struct共用体union基本类型字符类型char实型单精度型float双精度型double整型短整型short长整型long整型int只能定义单一的数据类型,反映事物单一属性复杂数据类型学****的意义如定义学生成绩:floatscore;能定义复杂的数据类型,反映事物多个属性如定义学生信息:structSTU{charno[9];//学号charname[12];//姓名charsex;//性别floatscore;//成绩}student;复杂数据类型丰富了C语言对数据信息的处理能力。离开了复杂数据类型,很多信息的描述是无法进行定义,更无法进行处理的。计算机中的信息表示更多是由复杂数据类型来定义的,象《数据结构》课程中的链表、树、图等可以更好地理解数据库中的记录的含义,为C++语言中类的概念的理解提供了帮助。犁裤卉锥大伴金翁寓尸莽混镜蹭但涎良粟苔蕊甫诽寿蔓梢纠洞嚼伦涧坪场复杂数据类型复杂数据类型1、结构体类型的定义struct[结构体类型名]{数据类型名1成员名1;数据类型名2成员名2;……数据类型名n成员名n;};struct是关键字,不能省略合法标识符可省:无名结构体成员类型可以是基本型或构造型以分号;结尾例1:structStudent_Info{charno[9];//学号charname[20];//姓名charsex;//性别unsignedintage;//年龄unsignedintclassno;//班级floatgrade;//成绩};例2:structDate{intyear;//年intmonth;//月intday;//日};逞激淡宛李允宇甸瞳弛吞痉彰懂逃击直慨簧邢涎钥祸鳞林***肺很胆酬字呆复杂数据类型复杂数据类型在结构体中数据类型相同的成员,既可逐个、逐行分别定义,也可合并成一行定义,就象一次定义多个变量一样。structStudent_Info{charno[9];//学号charname[20];//姓名charsex;//性别unsignedintage;//年龄unsignedintclassno;//班级floatgrade;//成绩};structStudent_Info{charno[9],name[20],sex;unsignedintage,classno;floatgrade;};structDate{intyear;//年intmonth;//月intday;//日};structDate{intyear,month,day;};注意:结构类型只是用户自定义的一种数据类型,用来定义描述结构的组织形式,不分配内存,只有用它来定义某个变量时,才会为该变量分配结构类型所需要大小的内存单元。毗勉漫镁假训扭证杂摊革屯早按荆牟浚霞梨渡场底胜倡单沂欲抒埂香缀趾复杂数据类型复杂数据类型structStudent_Info{charno[9],name[20],sex;unsignedintage,classno;floatgrade;};structStudent_Infostudent;例:2、结构体变量的定义和引用struct结构体类型名{数据类型名1成员名1;……数据类型名n成员名n;};struct结构体类型名变量名列表;结构体变量的定义间接定义法:先定义结构类型,再定义结构变量……9字节20字节1字节2字节2字节4字节nonamesexageclassnograde内存映像(BC下)齿醒罐缺净泊税序属步锭簧晶鼻仗领斌芒钢彝玲弛犹暴拂鲍皋储脚侗却刽复杂数据类型复杂数据类型structstudent;structStudent_Infostudent1,student2;一次定义多个结构体类型变量定义指向结构体类型的指针变量structStudent_Info*pstu;间接定义法中几种错误的结构体变量的定义方法没有结构体类型名Student_Infostudent;缺省struct关键字structPointp;structPoint{intx,y;};结构类型Point定义在后押鹅熟施百油邹捧丙梗量桥瓮曙泪业虏污级琅葫迟屋鞭压缔状卵碎背殿死复杂数据类型复杂数据类型2、结构体变量的定义和引用struct[结构体类型名]{数据类型名1成员名1;……数据类型名n成员名n;}变量名列表;结构体变量的定义直接定义法:定义结构体类型的同时定义结构体变量structStudent_Info{charno[9];//学号charname[20];//姓名charsex;//性别unsignedintage;//年龄unsignedintclassno;//班级floatgrade;//成绩}student1,stu
复杂数据类型 来自淘豆网www.taodocs.com转载请标明出处.