C语言:2.1.4结构联合与枚举专题.ppt
,主讲老师:,欢迎您到(千锋学院)来学习!结构联合与枚举专题,内容摘要,结构体概念和用法结构体成员访问结构体与函数数据抽象联合的概念和用法枚举型概念与用法,结构体概念和用法,结构体是一种复合数据类型成员可是简单数据类型或复合数据类型结合指针可以用来创建复杂的数据结构结合函数指针可以把操作绑定到数据比如复数包含实部和虚部struct complex_struct double x,y;注意不要忘记结尾的分号,结构体概念和用法,结构体类型定义方法,由多个成员组成定义一种新的数据类型:struct studentstruct studentchar name30;int age;,表示定义结构,结构名称是student,结构体成员,结构体概念和用法,结构体变量定义方法z,z1 和 z2 的数据类型都是struct complex_structstruct complex_structdouble x,y;z1,z2;struct complex_struct z1,z2;struct complex_struct z=3.0,4.0;/x=3.0,y=4.0struct complex_struct z=3.0,;/x=3.0,y=0struct complex_struct z=0;/x=0,y=0z1=3.0,4.0;/错误,结构体概念和用法,结构体嵌套,结构体成员也是结构体struct segmentstruct complex_struct start;struct complex_struct end;struct segment s=1.0,2.0,4.0,6.0;struct segment s=1.0,2.0,4.0,6.0;s.start.x=3.0;s.end.x=4.0;,结构体成员访问,使用.访问结构体变量成员struct complexdouble x,y;start;start.x=0.0f;使用-访问结构体变量成员struct complex*p=,结构体与函数,把结构体直接传入函数struct complex_struct incReal(struct complex_struct c)struct complex_struct z=1.0,2.0;incReal(z);/z值不变把结构体指针传入函数void incReal(struct complex_struct*c)struct complex_struct z=1.0,2.0;inc Real(/z值改变,数据抽象,提取出各个部分的共性分离易变部分和不易变部分改动带来的影响只局限在这一层次内部,数据抽象,练习:复数的存储表示用直角和极坐标,分别实现加法,减法运算。,联合的概念和用法,共享存储空间数据类型可能为多种:整数,浮点数,结构体同时只能是某一种数据类型不同编码方式的联合体union characterchar ascii;/英文ascii码int utf16;/0 x61626364char utf84;/兼容unix-like的utf-8;union character ch=z;printf(“%dn”,sizeof(ch);/4,内存对齐,32位机器访问起始地址是的倍数处的内存比较方便编译器会对变量的起始地址进行对齐struct node/*sizeof*/char a;/*打印各个变量地址*/short b;int c;struct nodechar a;int c;short b;,枚举类型的概念和用法,用标识符表示的整数常量集合定义不同类型enum coordinate_type RECTANGULAR=1,POLAR;指定初值,从1开始;未指定从0开始表示不同状态enum thread_state ready,running,suspending,sleeping;表示字符串内码enum dayenum MON,TUE,WED,THU,FRI,SAT,SUN;char*days=“Monday”,“Tuesday”,“Wednesday”,“Thursday”,”Friday”,“Saturday”,“Sunday”;for(i=MON;iSUN;i+).,其他问题?,