c++结构体学习笔记!

定义结构体类型:

c++结构体学习笔记!
后面有个分号,格外注意,与类的定义相似。
实例:c++结构体学习笔记!
注意:结构体声明一般放在程序文件开头。此时这个声明是全局的,若是放在某个函数内部,则这个声明是局部的。
c++结构体学习笔记!
PS:结构体类型和普通数据类型(int,double,char等)一样是类型名称,而不是该类型的一个实体,因此不会为它分配存储空间。
结构体可以嵌套使用,即结构体成员又可以是一个结构体类型的。

定义了结构体对象之后系统才会为这个对象分配存储空间。
类比理解一些,若是定义 int x 则只有x 的定义,它并没有获得任何存储空间。
只有当给x一个实际的值例如 x=2,系统才会为它分配存储空间
此处结构体类似。
定义结构体对象有两种形式:1.先声明结构体类型再定义对象。
c++结构体学习笔记!
2.声明结构体类型的同时定义对象。
c++结构体学习笔记!
而声明的对象得到的存储空间是在结构体内定义的数据类型所占用的内存空间之和
例如
c++结构体学习笔记!
这里的d1,d2分别得到了4*3个字节的存储空间。
而它分配存储空间的方式是按照定义结构体内的数据类型的先后顺序来分配的,例如上面这个例子,前四个字节的存储空间分配给year,第二个四个字节分配给month,第三个四个字节分配给day。

结构体对象的初始化。
可以在结构体对象定义时进行初始化。
c++结构体学习笔记!
注意:初始化的时候顺序必须相同!!

结构体对象成员的引用:
使用结构体对象一般是引用它的成员,一般形式为:
结构体对象名.成员名
成员引用运算符为“.”
c++结构体学习笔记!

而如果成员本身又是一个结构体对象,那么要用成员引用运算符就一级一级引用。例如
c++结构体学习笔记!
只能对结构体对象中的成员逐个进行输入或者输出。
c++结构体学习笔记!
能对结构体对象进行赋值运算,但是不能进行算数运算和关系运算等。
c++结构体学习笔记!
数组元素可以是结构体类型,称为结构体数组,也就是说,定义一个数组,数组里的每个数据类型都是结构体类型,如一位数组的定义形式为
c++结构体学习笔记!
相当于points里面的每一个元素都可以代表一个二维平面上的点。每一个元素都是结构体类型,里面拥有int型的x和y数据。

一维结构体数组的初始化形式为
c++结构体学习笔记!
例如:
c++结构体学习笔记!
c++结构体学习笔记!
c++结构体学习笔记!
c++结构体学习笔记!
c++结构体学习笔记!
c++结构体学习笔记!
c++结构体学习笔记!
c++结构体学习笔记!
c++结构体学习笔记!