013结构体1.docx

上传人:b****9 文档编号:25695530 上传时间:2023-06-11 格式:DOCX 页数:7 大小:15.92KB
下载 相关 举报
013结构体1.docx_第1页
第1页 / 共7页
013结构体1.docx_第2页
第2页 / 共7页
013结构体1.docx_第3页
第3页 / 共7页
013结构体1.docx_第4页
第4页 / 共7页
013结构体1.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

013结构体1.docx

《013结构体1.docx》由会员分享,可在线阅读,更多相关《013结构体1.docx(7页珍藏版)》请在冰豆网上搜索。

013结构体1.docx

013结构体1

一、结构体

1.为什么要使用结构体

一辆银灰色的车牌号为湘A00001的雪弗兰轿车以80km/h的速度行驶。

在这里由车牌、车名、型号、车速共同构成了对一辆轿车的描述,在数据处理中,这四个属性应该当作一个整体来处理。

但它们不属于同一类型,无法用数组来容纳,而用单个变量来分别代表各个属性,又难以反映出它们的内在联系。

C语言提供结构体(structure)数据结构,将不同数据类型、但相互关联的一组数据,组合成一个有机整体使用。

结构类型定义

2.结构体类型特点

(1)定义一个结构体类型,系统不会为其分配内存单元。

定义一个类型只是表示这个类型的结构,即告诉系统它由哪些类型的成员构成,各占多少个字节,各按什么形式存储,并把它们当作一个整体来处理。

(2)结构体类型由多个成员组成,成员的数据类型可以是整型、实型、字符型、数组,也允许是另一个已经定义的结构体类型。

(3)结构体类型是根据设计者的需要来组合的。

(4)结构体类型系统没有预先定义,凡需要使用结构体类型数据的,都必须在程序中自己定义。

 

3.结构体的定义

格式:

struct结构类型名/*struct是结构类型关键字*/

{数据类型成员1;

数据类型成员2;

…………

数据类型成员n;

};/*此行分号不能少!

*/

例:

定义一个描述日期的结构体。

structdate

{

intyear,month,day;

};

例:

定义一个描述上面车辆信息的结构体。

例:

定义一个描述学生信息的结构体(年龄表达)。

structstudent

{

charnum[13];

charname[9];

charsex[3];

intage;

charaddr[60];

};

职工信息:

职工号,姓名,性别,职位,电话,工资

structemployee

{

charcode[3];

charname[9];

charsex[3];

charposition[15];

charphone[15];

doublesalary;

};

 

例:

定义一个描述学生信息的结构体(出生日期表达)。

4.结构体的使用

定义结构体变量(定义结构体同时定义变量,定义结构体之后定义变量)

定义结构体变量时,分配存储空间,大小为各成员所占空间之和。

5.结构体变量的初始化

定义的同时初始化,定义之后初始化(结构体成员的引用)

structdate

{

intyear,month,day;

}d={2009,12,15};

structdate

{

intyear,month,day;

};

structdated={2009,12,15};

structdate

{

intyear,month,day;

}d;

.成员运算符

d.year=2009;

d.month=12;

d.day=15;

structstudent

{

charnum[13];

charname[9];

charsex[3];

intage;

charaddr[60];

}stu={“200906111101”,”张三”,”男”,18,“四川省成都市温江区天府路”};

#include

#include

intmain()

{

structstudent

{

charnum[13];

charname[9];

charsex[3];

intage;

charaddr[60];

};

structstudentstu={“200906111101”,”张三”,”男”,18,“四川省成都市温江区天府路”};

printf(“%s%s%s%d%s\n”,stu.num,stu.name,stu.sex,stu.age,stu.addr);

return0;

}

 

structstudentstu;

strcpy(stu.num,”200906061101”);

strcpy(stu.name,”张三”);

strcpy(stu.sex,”男”);

stu.age=18;

strcpy(stu.addr,”中国”);

#include

#include

intmain()

{

structstudent

{

charnum[13];

charname[9];

charsex[3];

intage;

charaddr[60];

};

structstudentstu;

printf(“输入学号姓名性别年龄家庭住址\n”);

scanf(“%s%s%s%d%s”,stu.num,stu.name,stu.sex,&stu.age,stu.addr)

printf(“%s%s%s%d%s\n”,stu.num,stu.name,stu.sex,stu.age,stu.addr);

return0;

}

例:

定义一个描述日期的结构体。

例:

定义一个描述上面车辆信息的结构体。

例:

定义一个描述学生信息的结构体(年龄表达)。

例:

定义一个描述学生信息的结构体(出生日期表达)。

二、结构体数组

1.定义

2.初始化

3.使用

三、结构体指针

*——间接运算符

->——指向运算符

三、链表

四、共用体(联合体)

1.定义

union共用体名

{

数据类型成员1;

数据类型成员2;

……

};

2.共用体变量的引用

五、枚举

1.定义

enum枚举名{成员列表};

枚举元素为常量,默认第一个成员为0,以后成员依次加1。

可以改变默认值。

枚举类型的用法

#include

enummonths{JAN=1,FEB,MAR,APR,MAY,

JUN,JUL,AUG,SEP,OCT,NOV,DEC};

main()

{enummonthsmonth;

char*mname[]={"","January","February",

"March","April","May","June","July",

"Auguest","September",

"October","November","Dcember"};

for(month=JAN;month<=DEC;month++)

printf("%2d--%-10s\n",month,mname[month]);

}

六、typedef定义类型

七、作业

八、预习

位运算、文件

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1