c语言从0->1入门——结构体(上)

简介: c语言从0->1入门——结构体(上)

关于作者:

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"};

最后

由于结构体篇幅较长,练习题我们放到下一节来说,等结构体说完,会有一个小项目来巩固所学知识。

相关文章
|
15天前
|
程序员 C语言
【C语言】初步认识结构体
【C语言】初步认识结构体
15 0
|
20天前
|
存储 自然语言处理 编译器
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
|
17小时前
|
算法 C语言
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-2
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
17小时前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
2天前
|
存储 编译器 程序员
C语言:自定义类型 - 结构体 & 联合体 & 枚举
C语言:自定义类型 - 结构体 & 联合体 & 枚举
10 2
|
6天前
|
存储 编译器 C语言
[C语言]自定义类型(结构体~枚举~联合体)
[C语言]自定义类型(结构体~枚举~联合体)
|
11天前
|
存储 算法 程序员
【C言专栏】C 语言结构体的应用与实践
【4月更文挑战第30天】C语言中的结构体是自定义数据类型的关键,它组合不同类型的數據以创建新类型,尤其适合处理复杂对象如学生信息。通过定义结构体如`struct Student`,包含名字、学号和成绩,可以方便地实例化和访问成员。结构体在链表实现、函数参数传递和数组中都有广泛应用,如表示链表节点和处理批量数据。理解并熟练运用结构体对于C语言编程至关重要,能提升代码效率和可读性。
|
17天前
|
编译器 Linux C语言
C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)
C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)
|
17天前
|
编译器 C语言
函数深入解析(C语言基础入门)
函数深入解析(C语言基础入门)
|
17天前
|
C语言
数组深入剖析(C语言基础入门)
数组深入剖析(C语言基础入门)