关于作者:
2019NOIP退役成员,学习c语言已有多年经验, 更懂得考试的题目,和初学者学习时所遇到的问题华为云享专家,以及CSDN的新星创作者,有写博客的一定能力
关于本栏目
本栏目的宗旨是带你入门c语言,作者打算用题海+c语言的概念来完成本栏目,
适用人群: 面向广大的编程爱好者和大学生来进行创作学完本栏后你能达到的水平:计算机二级水平左右,入门c语言学习
题目:主要来源于网络和c语言的入门算法题目
写在前面的话(第十五天)
记住我们的宗旨:努力去做,让一切交给时间来评判!
结构体
下面我们通过一个例子,来引入为什么要有结构体这种语法
姓名 | 手机 | 邮件 |
---|---|---|
小明 | 15223234545 | 98263526@163.com |
小黄 | 12345812252 | 12587469@163.com |
... | ... | ... |
如果按照我们之前学过的知识,可以用多个数组来实现这个图表
char name[2][10]={
"xiaoming",
"xiaohuang",
};
int phone[2] = {
15223234545,
12345812252,
};
char email[2][20] = {
"98263526@163.com",
"12587469@163.com",
};
也可以实现这个图表,但是有不少问题,例如:
- 信息松散,不直观
- 存取不方便
在c语言中,存在一些基本类型,char,short,int,long long,float,double等,但是还是不够用,我们可以将他们整合起来使用,形成一个新的自定义类型,称为结构体类型
struct stu //第一部分:声明结构体类型struct stu
{
char name[100];//姓名为字符串型
char cel[15];//手机
char mail[50];//邮件
};
注意大括号末尾加上分号
基本用法
变量定义和初始化
可以使用结构体类型作为类型名,来定义一个变量,
stu a;//定义一个变量不指定初始值
也可以指定初始值,与数组初始化的语法相似,可以用大括号来将各个成员的初始化值输出,记得保证内部数据顺序的一致性
stu a = {
"xiaoming",
15223234545,
"98263526@163.com",
};
指定初始值,注意:
注意使用大括号,末尾要加 分号
各字段表示的含义,要与结构体的类型相匹配
各字段的初始值要用 逗号分开
访问
可以使用点号来访问结构体变量的成员,例如
stu a;
a.name="xiaoming";
注意:
大括号只能在初始化的时候使用,不能在赋值的时候使用,下面是错误实例
stu c;//错误
c = {"xiaoming",1245110235,"124541@163.com"};
最后
由于结构体篇幅较长,练习题我们放到下一节来说,等结构体说完,会有一个小项目来巩固所学知识。