1.结构体详解

结构体
摘要由CSDN通过智能技术生成

(一)、什么是结构体?

在这里插入图片描述

结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员”,其描述了一块内存区间的大小及解释意义

(二)、结构体的声明:

#include <iostream>
using namespace std;
//结果提声明
struct book
{
   
	int a;
	float b;
};   //这里有一个分号
int main()
{
   
}

这个声明描述了一个整型变量和一个float变量组成的结构体,但是注意,他并没有创建一个实际的数据对象,而是描述了一个组成这类对象的元素,【因此,我们也有时候将结构体声明叫做模板,因为它勾勒出数据该如何存储,并没有实例化数据对象】。

2.1介绍一下上面的结构体声明;

在这里插入图片描述

1,首先使用**关键字struct**,他表示接下来是一个结构体。

2;后面是一个**可选的标志**(book),它是用来引用该结构体的快速标记。
因此我们		以后就会可以这样创建数据对象
struct book library;//把library设为一个可以使用book结构体
的结构体变量,则library这个变量就包含了其book结构体中的所有元素
3;接下来就是一个**花括号**,括起了结构体成员列表,及就是每个成员变量,
使用的都是其自己的声明方式来描述,用分号来结束描述;
	列如;int a,字符数组就是这样声明的,用分号结束;

注意;其中每个成员可以使用任何一种c数据结构甚至是其他的结构体,也是可以的;

4;在结束花括号后的**分号**表示结构体设计定义 的结束。

2.2struct声明的位置

关于其struct声明的位置,也就是这段代码要放到哪里。同样这也是具有作用域的。

这种声明如果放在任何函数的外面,那么则可选标记可以在本文件中,
该声明的后面的所有函数都可以使用。如果这种声明在某个函数的内部,
则它的标记只能咋内部使用,并且在其声明之后;

在这里插入图片描述
在这里插入图片描述

2.3标记名的可省略性

关于我们不断说的,标记名是可选的,那么我们什么时候可以省略,什么时候一定不能省略呢?
不能省略的情况是:如果是上面那种声明定义的方法,并且想在一个地方定义结构体设计,而在其他地方定义实际的结构体变量那么就必须使用标记;
可以省略的情况是:设计的同时就创建该结构体变量,但是这种设计是一次性的,还有就是引入typedef。
第一种:

注意这里不再是定义声明结构体类型,而是直接创建结构体变量了,这个编译器会分配内存的;
这样的确可以省略标识符也就是结构体名,但是只能使用一次;因为这是;声明结构体的过程和定义结构体变量的过程和在了一起;并且个成员变量没有初始化的;
如果你想多次使用一个结构体模块,这样子是行不通的;

struct
{
   
    char title[MAXTITL]; 
    char author[MAXAUTL]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值