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

 更新时间:2022年02月21日 15:58:11   作者:Marksky126.  
这篇文章主要为大家详细介绍了C语言世界中的结构体,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

一、结构体的概念:

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

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

举个例子:

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

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

以上就是结构体的定义。

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

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

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

结构体变量的定义

(1)单独定义

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

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

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

结构体变量的初始化

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

初始化的格式一般为:

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

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

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

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

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

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

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

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

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

格式:

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

还是那个例子: 

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

总结

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

相关文章

  • C++中的struct和class的区别详解

    C++中的struct和class的区别详解

    这篇文章主要介绍了C++中的struct和class的区别详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • c++中临时变量不能作为非const的引用参数的方法

    c++中临时变量不能作为非const的引用参数的方法

    下面小编就为大家带来一篇c++中临时变量不能作为非const的引用参数的方法。小编觉得挺不错的现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C++基础概念讲述

    C++基础概念讲述

    这篇文章主要介绍了C++基础概念,​ 本次为C++的一个开篇,重点是更好的理解C++相对于其他编程语言的一个特性,之后会持续更新,本次专栏计划是掌握C++的基础语法以及常用特性,并且从细节上去理解,需要的朋友可以参考一下
    2021-12-12
  • 手把手带你搞懂C语言指针

    手把手带你搞懂C语言指针

    这篇文章主要介绍了C语言的指针,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08
  • 全局变量与局部变量在内存中的区别详细解析

    全局变量与局部变量在内存中的区别详细解析

    以下是对全局变量与局部变量在内存中的区别进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • C,C++中常用的操作字符串的函数

    C,C++中常用的操作字符串的函数

    这篇文章主要介绍了C,C++中常用的操作字符串的函数,需要的朋友可以参考下
    2017-09-09
  • C语言中联合体与共用体和枚举使用语法示例

    C语言中联合体与共用体和枚举使用语法示例

    这篇文章主要介绍了C语言中联合体与共用体和枚举使用语法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • c++实现简单的线程池

    c++实现简单的线程池

    本文介绍的线程池采用C++语言,在windows平台下实现。本着技术分享的精神写作本文同时公布源代码。欢迎大家指出该线程池存在的问题并对当前性能进行讨论。
    2015-03-03
  • 详解Matlab中自带的Java操作合集

    详解Matlab中自带的Java操作合集

    其实Matlab中也有一些自带的Java操作,例如:获取鼠标在全屏位置、获取当前剪切板内容、获取鼠标处像素颜色等,本文总结了七个这样的操作,感兴趣的可以了解一下
    2022-03-03
  • C++ RBTree红黑树的性质与实现

    C++ RBTree红黑树的性质与实现

    红黑树是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black;通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是平衡的
    2023-03-03

最新评论