- 1
- 0
- 约5.93千字
- 约 9页
- 2024-03-19 发布于上海
- 举报
当前讲授
第十四章结构体、共用体和用户自定义类型
程序实例
问题:当我们处理复杂的数据信息时,C语言如何实现?比如,管理学生信息(学号、姓名、年龄等),显然以前学过的数据类型很难满足要求。
程序演示:【例】编函数输入10个学生信息,在主函数中调用该函数输入学生信息,然后再输出。
程序清单:
#defineN10
structstudent3 /*定义含有3个成员的结构型student3*/
{longnum;
charname[10];intage;
};
voidmy_in(structstudent3stu1[]) /*无返回值的有参外部函数,形参是结构型数组*/
{inti;
for(i=0;iN;i++)
{scanf(”%ld”,stu1[i].num); /*输入学生的学号*/scanf(”%s”,stu1[i].name); /*输入学生的姓名*/scanf(”%d”,stu1[i].age); /*输入学生的年龄*/
}
return;
}
voidmain()
{structstudent3stu[N]; /*定义结构型student3的数组stu*/inti;
my_in(stu); /*调用函数输入学生信息存入结构型数组
*/
for(i=0;iN;i++) /*依次输出学生的学号、姓名、年龄*/printf(”%ld%s%d\n”,stu[i].num,stu[i].name,stu[i].age);
}
一、用typedef说明一种新类型名
【格式】typedef类型名标识符;
【功能】为已存在的类型用一个新的名字来代表。
【例】typedeffloatREAL; /*定义单精度实型为REAL*/
voidmain()
{REALf1=1.2; /*该语句相当于floatf1=1.2;*/
...
}
【例】typedefint*POINT_I; /*定义POINT_I为整型指针的用户自定义类型*/voidmain()
{POINT_Ip1,p2; /*该语句相当于int*p1,*p2*/
...
}
历年真题
以下关于typedef的叙述错误的是( )。
用typedef可以增加新类型
typedef只是将已存在的类型用一个新的名字来代表
用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
用typedef为类型说明一个新名,通常可以增加程序的可读性隐藏答案
【答案】A
【解析】typedef只是将已存在的类型用一个新的名字来代表,以增加程序的可读性与书写方便。
二、结构体类型
结构体类型是用户在程序中自己定义的一种来存放类型不同的数据类型,又称“结构体型”。
结构体类型的说明
【例】为学生成绩登记表定义结构型
学号 姓名 性别 年龄 成绩
structstudent /*定义含有5个成员的student结构型*/
{intnum; /*学号*/charname[10]; /*姓名*/
charsex; /*性别*/
shortage; /*年龄*/
floatsc[4]; /*四门课程成绩的*/
};
【例】定义嵌套结构型的例子。
姓名 性别
出生日期
成绩
年 月 日
structdate /*定义含有三个整型成员的date结构型*/
{intyear,month,day;};
structstudent /*定义含有4个成员的student结构型*/
{charname[10]; /*姓名*/charsex; /*性别*/
structdatebirthday; /*出生日期,该成员的数据类型是date结构型*/floatsc[4]; /*四门课程成绩的*/
};
注意,名为“date”的结构型定义必须在结构型“student”的定义之前进行定义,否则,结构型“student”定义时,会出现“date结构型未定义”的错误。
以上结构可以改写成:
structstudent /*定义含有4个成员的student结构型*/
{charname[10]; /*姓名*/charsex; /*性别*/
struct /*定义含有三个整型成员的无名结构型*/
{intyear;intmonth;intday;
}birthday;floatsc[4];
};
结构体类型的变量、数组和指针变量的定义
定义结构体类型的变量、数组和指针变量的四种方式:
您可能关注的文档
- 第三节盐类的水解教案.docx
- 第三届苏州市中小学班主任基本功竞赛决赛笔试题.docx
- 第三课 打掌掌.docx
- 第三课 L2椎体爆裂性骨折.docx
- 第三课 一日三餐有规律.docx
- 第三篇 隧道二次衬砌结构计算.docx
- 第三篇 拥有老板心态——你是工作主人而非奴仆.docx
- 第三篇儿科护理学单选.docx
- 第三篇儿科护理学复习题.docx
- 第三篇儿科护理知识4.docx
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
原创力文档

文档评论(0)