一、结构是什么,我们为什么需要结构?
先说结论:结构其实是一种我们自定义的类型,或者你也可以将其看作是一种超级数组。
和char、short、int一样,结构也只是一种数据类型。但它相较于系统给定的其它类型,它具有它的特殊性。
我们知道,如果我们要存放一个人的名字,可以用char类型的数组来存放。
要存放一个人的年龄,可以用short或int类型的变量来存放。
但如果我想一次性把年纪和名字存放在一起该怎么做呢?
结构应运而生。
结构的特殊性在于:它可以同时存放很多种不同类型的数据。它的功能很像数组,不过是超级数组。
数组可以存放很多数据,不过只能存放同类型的数据。
结构也可以存放很多数据,且可以是不同类型的。
二、我们先来看看结构的声明:
struct People
{
char name[20];
short age;
};
上面就是结构的声明,该声明描述了一个由1个char类型的数组和1个short类型的变量组成的结构。
struct为关键字
People为结构的标记
这个声明就是一个模板,有了这个模板,后面我们就可以把它当做数据类服务器托管网型来创建这个数据类型的变量。
从本质上看,People结构声明创建了一个名为struct People的新类型。
注意,声明结构的时候,编译器此时并未为它开辟空间。它的空间要等到定义结构变量时才分配。
三、定义结构变量的3种方法:
1、声明与定义分开
//建立结构声明
struct People
{
char name[20];
short age;
};
//定义结构变量
struct People Jack;
上面最后一条代码的含义是:
- 创建了一个结构变量
- 变量名是Jack
- 变量的结构布局是People
此时编译器会为Jack分配空间。
2、声明与定义一起
我们也可以把结构的声明和定义放在一起。声明的同时,也定义了结构变量。
//建立结构声明
struct People
{
char name[20];
short age;
}Jack;//定义了一个结构变量 --
3、直接定义结构变量
另外,我们甚至可以直接不要结构标记,如:
struct
{
char name[20];
short age;
}Jack;//定义了一个结构变量 -- Jack
但省去标记的代价是:这个结构我们只能用一次,以后再也用不了了。
原因也很容易理解:你都没有标记了,你以后再想创建变量时,该如何表示它呢?
所以如果你想多次使用一个结构,就要采用带标记的形式(或者使用typedef来定义一个结构)。
到这,结构的声明与定义就结束了。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, ht服务器托管网tp://www.fwqtg.net
相关推荐: vuepress借助jenkins和svn实现文档自动化更新部署
前言 有个需求,需要将放在SVN的用vuepress写的文档进行自动化更新和部署,每次有人在本地将写好的md文件更新到svn时候,由jenkins实现自动打包来实现自动更新的功能。 docker安装jenkins 首先创建目录,将jenkins_home挂载到…