C语言:Structures 结构体

学生党,课堂笔记加知识整理。若有不足勿喷!🙏。

  • 什么是结构体?
  • 使用结构体的几种例子。
  • 定义一个结构体。
  • 声明一个结构体。
  • 调用成员。
  • 复合结构体 ( Nested structures )
  • 数组和结构体 ( Arrays of structures & Array inside structures )
  • 题目中使用结构体。

PS. 补充关于union ,并将其与 structures 比较。


什么是结构体?

  • 结构体,是一个可以储存 不同类型 数据项的集合( collection )。
  • 结构体类型,在C语言,用 struct 表示。
  • 与 array ( 数组 )相比,数组的数据是 homogenous (同类的),structures 是可以 heterogeneous (各种类型的)。

用使用结构体的几种例子,加深理解。

当进行学生信息录入的时候,我们会需要id ,name ,gender ,major ,start year 等等信息,而这些信息,有的是 int 类型, 有的是 string 类型 等等,这时就需要使用结构体,把这一个学生的信息放在一个结构体中更好的录入。同样的,在银行中, 关于一个客户的银行账户信息 , 图书馆中, 一本书的信息 等等,都会用到结构体的概念。

下面就让我们一起了解一下如何写结构体吧~


定义一个结构体。

struct <struct-type>
{
   
     <type><identifier_list>;
     <type><identifier_list>;
     ...
} ;
//一定要注意,结构体最后有一个“ ;”。
  • 每一个 identifier 定义了一个结构体成员。

具体实例:

//Ex.1
struct Date
{
   
     int day;
     int month;
     int year;
};
  • Date是这个结构体的标签/
  • 这个结构体中有三个成员,分别是 day,moth ,year。
//Ex.2
struct StudentGrade
{
   
      char Name[15];
      char Course[9];
      int Lab;
      int Homework;
      int Exam;
};
  • 这里主要是体现不同数据类型,以及对于在结构体中定义数组成员的可行性(稍后会具体讨论)。

声明一个结构体。

//基本语法
<struct-type> <identifier_list>;

具体实例:

//如上一点的具体实例,假设我们已经定义过一个struct StudentGrade。
struct StudentGrade St1,St2;
//这里这个struct不可以少。

St1:
st1 st2都是这样的结构体
St2:
在这里插入图片描述

当然,还有一种方法。

struct StudentGrade
{
   
      char Name[15];
      char Course[9];
      int Lab;
      int Homework;
      int Exam;
}Str1,Str2;
//相当于struct StudentGrade St1,St2;

调用结构体中的成员(顺便赋值啦)。

//调用方法。
<struct-vatiable>.<member_name>;

具体实例:

//仍旧是之前所声明定义过的 struct StudentGrade 类。
//这里我就以St1 为例,只写 main 函数里的吧~
    strcpy(Str1.Name," Xiao Xin ");
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值