服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 一起来看看C语言世界中的结构体

一起来看看C语言世界中的结构体

2022-09-27 15:36Marksky126. C/C++

这篇文章主要为大家详细介绍了C语言世界中的结构体,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

一、结构体的概念:

结构体是由一批数据聚合而成的结构型数据。

引入结构体,程序设计人员就可以根据需要定义用于描述事物不同属性的多个数据项,然后把这些数据项聚合成一个整体(结构体)来表示事物。

举个例子:

每个学生都有自己的信息。

?
1
2
3
4
5
6
struct student//结构体名
{
    int num;//结构体成员:学号
    char name[20];//结构体成员:名字
    float score;//结构体成员:成绩
};    //别忘记了这个分号

以上就是结构体的定义。

注意:结构体成员可以是任意类型的变量,但不允许是自身类型的变量。(不能自己的体内再放一个自己)

二、结构体变量的定义和初始化

结构体是一种数据类型,自然和其他基本数据类型一样,在定义了结构体类型后,还需要定义结构体类型的变量,C语言编译器才会为结构体变量分配存储单元,然后才能通过结构体变量来操作和访问结构体的数据。

结构体变量的定义

(1)单独定义

?
1
2
3
4
5
6
7
8
struct 结构体名
{
        类型名 结构体成员1;
        类型名 结构体成员2;
        类型名 结构体成员3;
};
    struct 结构体名 结构体变量名表;//结构体变量名表就相当于
//我们输入学生信息所指定的那个学生

(2)混合定义(在定义结构体的同时定义结构体变量)

?
1
2
3
4
5
6
struct 结构体名
{
        类型名 结构体成员1;
        类型名 结构体成员2;
        类型名 结构体成员3;
}结构体变量名表;//即直接定义学生姓名,不用重复写struct 结构体名,然后再写学生姓名

结构体变量的初始化

和其他基本类型一样,结构体变量也可以初始化

初始化的格式一般为:

?
1
struct 结构体名 结构体变量名 = { 初始化值1, 初始化值2......初始化值n};

接下来我们使用上面学生信息来举个例: 

?
1
2
3
4
5
6
struct student//结构体名
{
    int num;//结构体成员:学号
    char name[20];//结构体成员:名字
    float score;//结构体成员:成绩
};    //别忘记了这个分号
?
1
struct student = { 1 张三 88.9};

 三、结构体变量的使用(" . "与" -> "的使用)

 (1)" . "的使用1级运算符,结合方向从左到右):

?
1
结构体变量名 . 结构体成员名

依然使用学生信息来举例: 

?
1
2
3
4
5
6
7
struct student//结构体名
{
    int num;//结构体成员:学号
    char name[20];//结构体成员:名字
    float score;//结构体成员:成绩
}stu1,stu2;   
stu1.score = 90.0;

 (2)"->"的使用(1级运算符,结合方向从左到右):

格式:

?
1
结构体指针变量名->结构体成员名

还是那个例子: 

?
1
2
3
4
5
6
7
8
struct student//结构体名
{
    int num;//结构体成员:学号
    char name[20];//结构体成员:名字
    float score;//结构体成员:成绩
}stu1,stu2;   
struct student *p=&stu1;
p->score=55.5;//意为将55.5赋值给p指向的结构体变量stu1的score成员

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!  

原文链接:https://blog.csdn.net/m0_60653728/article/details/122736746

延伸 · 阅读

精彩推荐
  • C/C++vscode分享代码插件Polacode介绍

    vscode分享代码插件Polacode介绍

    这篇文章主要介绍了vscode分享代码插件Polacode的相关知识,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值...

    陈莺莺呀10312021-09-08
  • C/C++QT编写地图实现设备点位的示例代码

    QT编写地图实现设备点位的示例代码

    在地图应用的相关项目中,在地图上标识一些设备点,并对点进行交互这个功能用的最多的,于是需要一套机制可以动态的添加、删除、清空、重置。本文...

    feiyangqingyun9762022-08-11
  • C/C++C语言数据结构之堆排序源代码

    C语言数据结构之堆排序源代码

    这篇文章主要为大家详细介绍了C语言数据结构之堆排序源代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    kuweicai5622021-06-19
  • C/C++C++对Json数据的友好处理实现过程

    C++对Json数据的友好处理实现过程

    在Ajax的应用中,前台基本上会用到JSON作为数据交换格式,所以下面这篇文章主要给大家介绍了关于C++对Json数据的友好处理,文中通过实例代码介绍的非常详细...

    雪影蓝枫9262022-09-21
  • C/C++C++中新手容易犯的十种编程错误汇总

    C++中新手容易犯的十种编程错误汇总

    一段C语言代码,在编译、链接和运行的各个阶段都可能会出现问题,下面这篇文章主要给大家介绍了关于C++中新手容易犯的十种编程错误的相关资料,需要的...

    IT老张4202022-02-13
  • C/C++C语言编写简单的定时关机程序

    C语言编写简单的定时关机程序

    本文给大家分享的是一则C语言编写的简单的定时关机程序,可以设置0-600秒倒计时,有需要的小伙伴可以参考下。...

    C语言中文网8522021-03-25
  • C/C++C++实现类似延时停顿的打字效果

    C++实现类似延时停顿的打字效果

    这篇文章主要介绍的是使用C++实现类似延时停顿的打字效果的代码,非常的简单,推荐给大家,有需要的小伙伴可以参考下。...

    C++教程网11722021-02-24
  • C/C++vs2019永久配置opencv开发环境的方法步骤

    vs2019永久配置opencv开发环境的方法步骤

    这篇文章主要介绍了vs2019永久配置opencv开发环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    Gil Zhang8932021-08-24