C语言基础 模块7 part1.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:72 大小:1.5MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

C语言基础 模块7 part1.ppt

C语言基础模块7part1.ppt

预览

免费试读已结束,剩余 62 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

结构体、共用体与用户自定义类型要点:1结构类型2结构数组3结构指针4在函数之间传递结构1结构类型struct为关键字。结构类型名称是所定义的结构类型标识,由用户自己定义;{}中包含的是组成该结构的成员;每个成员的数据类型既可以是简单的数据类型(int、char、float、double...),也可以是复杂的数据类型(数组类型或结构类型)。结构定义实例为了处理通信录,可以定义如下结构:structaddress{charname[30];/*姓名,字符数组作为结构中的成员*/charstreet[40];/*街道名称*/charcity[20];/*城市*/charstate[2];/*省市代码*/unsignedlongzip;/*邮政编码,无符号长整型*/};要使用结构必须先说明结构类型的变量。例:将变量today说明为date型的结构变量:structdatetoday;说明多个address型的结构变量:structaddresswang,li,zhang;结构变量同样有存储类型,存储特性与一般变量完全相同。结构变量的各个成员分量在内存中占用连续存储区域,所占内存大小为结构中每个成员分量占用内存的长度之和。求结构变量占用内存大小使用sizeof运算。sizeof是单目运算,其功能是求出运算对象所占的内存空间的字节数目。使用的一般形式为:sizeof(变量或类型说明符)例1sizeof运算的意义。voidmain(){charstr[20];structdate/*定义结构date*/{intyear,month,day;}today;/*说明结构变量today*/structaddress/*定义结构address*/{charname[30],street[40],city[20],state[2];unsignedlongintzip;}wang;/*说明结构变量wang*/printf("char:%d\t",sizeof(char));/*char型的长度*/printf("int:%d\t",sizeof(int));/*int型的长度*/printf("long:%d\t",sizeof(long));/*long型的长度*/printf("float:%d\n",sizeof(float));/*float型的长度*/printf("double:%d\t",sizeof(double));/*double型的长度*/printf("str:%d\t",sizeof(str));/*变量str的长度*/printf("date:%d\t",sizeof(structdate));/*date的长度*/printf("wang:%d\n",sizeof(wang));/*变量wang的长度*/}四、关于结构类型的说明成员名可以与程序中的变量名相同,二者代表不同的对象。“.”操作的优先级最高。结合性为从左到右。例:用结构描述一个人的基本情况,可以定义如下结构:structperson/*定义person结构类型*/{charname[30];charsex;structdatebirthday;/*结构的嵌套定义*/}man;例如:structdate{intmonth;intday;intyear;};如果要在变量man中存入一个1980年3月28日出生的zhang先生,可以采用如下赋值语句:strcpy(man.name,”zhang”);/*注意:不能写成man.name="zhang";*/man.sex=’M’;/*为结构中的字符成员赋值*/man.birthday.year=1980;man.birthday.month=3;man.birthday.day=28;/*为嵌套定义的结构中的成员赋值*/如果要将“zhang”改为“zhong”,只要将结构变量man中的数组成员name下标为2的元素‘a’改为‘o’即可。可以使用下列语句:man.name[2]='o';/*为结构变量中的数组成员的一个元素赋值*/对结构变量的整体操作要对结构进行整体操作有很多限制,C语言中能够对结构进行整体操作的运算不多,只有赋值“=”和取地址“&”操作。例如:structdatesunday,today;sunday=today;/*结构变量整体赋值*/结构类型的引用说明只能对最低级的