例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};namenumsexagescoreaddr2字节2字节20字节1字节4字节30字节……..例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu1,stu2;,再定义结构体变量一般形式:struct结构体名{类型标识符成员名;类型标识符成员名;…………….};struct结构体名变量名表列;例#defineSTUDENTstructstudentSTUDENT{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};STUDENTstu1,stu2;定义结构体类型的同时定义结构体变量一般形式:struct结构体名{类型标识符成员名;类型标识符成员名;…………….}变量名表列;例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;直接定义结构体变量一般形式:struct{类型标识符成员名;类型标识符成员名;…………….}变量名表列;例struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;用无名结构体直接定义变量只能一次说明结构体类型与结构体变量概念不同类型:不分配内存;变量:分配内存类型:不能赋值、存取、运算;变量:可以结构体可嵌套结构体成员名与程序中变量名可相同,不会混淆结构体类型及变量的作用域与生存期例structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];structdatebirthday;}stu;numnamebirthdaymonthdayyear例structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}stu;,只能引用变量成员可以将一个结构体变量赋值给另一个结构体变量结构体嵌套时逐级引用成员(分量)运算符优先级:1结合性:从左向右引用方式:{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;=10;=;+=;++;例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;printf(“%d,%s,%c,%d,%f,%s\n”,stu1);()例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;stu2=stu1;()例structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}stu1,stu2;=12;例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;if(stu1==stu2)……..():struct结构体名{类型标识符成员名;类型标识符成员名;…………….};struct结构体名结构体变量={初始数据};例structstudent{intnum;charname[20];charsex;intage;charaddr[30];};structstudentstu1={112,"WangLin",'M',19,"200BeijingRoad"};形式二:struct结构体名{类型标识符成员名;类型标识符成员名
第9章结构体和共用体 来自淘豆网www.taodocs.com转载请标明出处.