一起来看看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语言利用数组和文件实现登录注册功能

    C语言利用数组和文件实现登录注册功能

    这篇文章主要为大家详细介绍了C语言利用数组和文件实现登录注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 一文弄懂C语言EOF

    一文弄懂C语言EOF

    在 C语言中,EOF 是一个宏定义,EOF 常常用于文件的输入输出中,当读取到文件结束时,会返回 EOF,本文就详细的介绍一下具体使用方法,感兴趣的可以一起来了解一下
    2023-05-05
  • C++/C 回文字符串的实例详解

    C++/C 回文字符串的实例详解

    这篇文章主要介绍了C++ 回文字符串的实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • C语言实现的循环单链表功能示例

    C语言实现的循环单链表功能示例

    这篇文章主要介绍了C语言实现的循环单链表功能,结合实例形式分析了基于C语言实现的循环单链表定义、创建、添加、删除、打印、排序等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • c++中的bind使用方法

    c++中的bind使用方法

    bind是这样一种机制,它可以预先把指定可调用实体的某些参数绑定到已有的变量,产生一个新的可调用实体,这种机制在回调函数的使用过程中也颇为有用。接下来通过本文给大家介绍c++中的bind使用方法,感兴趣的朋友一起看看吧
    2022-01-01
  • 纯C语言:递归组合数源码分享

    纯C语言:递归组合数源码分享

    这篇文章主要介绍了纯C语言:递归组合数源码,有需要的朋友可以参考一下
    2014-01-01
  • VC++实现View内容保存为图片的方法

    VC++实现View内容保存为图片的方法

    这篇文章主要介绍了VC++实现View内容保存为图片的方法,涉及VC++中Bitmap类的save方法相关使用技巧,需要的朋友可以参考下
    2016-08-08
  • C++设计模式之享元模式

    C++设计模式之享元模式

    这篇文章主要介绍了C++设计模式之享元模式,本文讲解了什么是享元模式、享元模式代码实例、享元模式的优点等内容,需要的朋友可以参考下
    2014-10-10
  • c++中ref的作用示例解析

    c++中ref的作用示例解析

    这篇文章主要为大家介绍了c++中ref的作用示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • C++中的Z字形变换问题

    C++中的Z字形变换问题

    将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列,这样一个需求怎么实现呢,下面小编给大家带来了C++中的Z字形变换问题,需要的朋友可以参考下
    2022-07-07

最新评论