chapter 7 结构体&共用体
2021/11/22 6:10:05
本文主要是介绍chapter 7 结构体&共用体,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 大学C语言程序设计
- chapter 7 结构体
- 1. 结构体的认识
- 2. 结构体信息输入输出
- 3. 结构体成员函数
- 4. 结构体排序
- 5. 结构体指针
- 6. 链表
- 7. 共用体类型
- 8. 枚举类型
- 9. typedef声明新类型名
- chapter 7 结构体
大学C语言程序设计
chapter 7 结构体
1. 结构体的认识
结构体概念:可以把各种类型的数据放在一起,形成新的数据类型。
如何定义:关键字 struct
格式:
struct 结构名{ 数据类型 变量名1; 数据类型 变量名2; };
如:定义一个学生,他有姓名,年龄,语文成绩,数学成绩,英语成绩
struct student{ char name[20]; int age; int score1,score2,score3; };
访问结构体中的信息,通过 ”.”来访问
student stu; //定义一个结构体变量 stu strcpy(stu.name,"helloA"); //字符数组的特殊赋值方式 stu.age=13; stu.score1=88; stu.score2=99; stu.score3=100; printf("%s %d %d %d\n",stu.name,stu.age,stu.score1,stu.score2,stu.score3);//输出
结构体的定义形式
//方式 1 struct student{ char name[20]; int age; int score1,score2,score3; }stu1,stu2; //方式 2 student stu3,stu4;
结构体初始化赋值
struct student{ char name[20]; int age; int score1,score2,score3; }stu={"helloB", 14,99,100,100};//初始化赋值
结构体数组
struct student{ char name[20]; int age; int score1,score2,score3; }stu[N]; 或者:student stu[N];
结构体数组初始化赋值
方式一
#include<stdio.h> #include<string.h> struct student{ char name[20]; int age; int score1,score2,score3; }stu[3]={ {"helloA",13,88,99,100}, {"helloB",14,90,99,100}, {"helloC",15,100,100,100}}; int main(){ for(int i=0; i<3; i++){ printf("%s %d %d %d\n",stu[i].name,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3); } return 0; }
方式二
#include<stdio.h> #include<string.h> struct student{ char name[20]; int age; int score1,score2,score3; }; struct student stu[3]={{"helloA",13,88,99,100},{"helloB",14,90,99,100},{"helloC",15,100,100,100}}; int main(){ for(int i=0; i<3; i++){ printf("%s %d %d %d\n",stu[i].name,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3); } return 0; }
2. 结构体信息输入输出
单个结构体信息输入输出
#include<stdio.h> #include<string.h> struct student{ char name[20]; int age; int score1,score2,score3; }stu; int main(){ char name[20]; scanf("%s %d%d%d%d", name, &stu.age, &stu.score1,&stu.score2,&stu.score3); strcpy(stu.name, name); printf("%s %d %d %d %d\n", stu.name,stu.age,stu.score1,stu.score2,stu.score3); return 0; }
多个结构体信息输入输出
#include<stdio.h> #include<string.h> #define N 1000 struct student{ char name[20]; int age; int score1,score2,score3; }stu[N]; int main(){ char name[20]; int n; scanf("%d", &n); for(int i=0; i<n; i++){ scanf("%s %d%d%d%d", name, &stu[i].age, &stu[i].score1,&stu[i].score2,&stu[i].score3); strcpy(stu[i].name, name); } for(int i=0; i<n; i++){ printf("%s %d %d %d %d\n", stu[i].name,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3); } return 0; }
3. 结构体成员函数
struct student{ char name[20]; int age; int score1,score2,score3; int sum(){ return score1+score2+score3; //求得成绩总和 } }stu[N]; printf("sum()=%d\n", stu[i].sum()); //使用方法
4. 结构体排序
5. 结构体指针
6. 链表
7. 共用体类型
8. 枚举类型
9. typedef声明新类型名
这篇关于chapter 7 结构体&共用体的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解