1.结构体最重要的一点是自定义! 而结构体类型就是由我们自定义得到的类型
1.自定义数据类型其实就是一些类型集合组成的一个新的类型
2.结构体自定义类型的写法 --- 结构体关键字 struct 类型标识符 { 成员列表 };
3.创建结构体类型变量的方法:
(结构体关键字 struct 类型标识符)括号里的内容就是相当于 int 的类型名,而创建变量的方法就是类型名 ---- 所以有创建结构体变量 -- struct strudent s1; 其中s1就是我们创建的结构体变量
4.结构体变量的赋值操作:
第一种:
用括号按照成员列表的顺序依次赋予对应的值
第二种:用 . 操作符的方式直接访问成员变量并给它赋值
第三种:和第二种类似,只不过用的是箭头操作符(只有在是结构体变量指针的时候才能够用箭头操作符来访问成员变量
5.在定义结构体的时候顺便创建一个结构体变量 --- 注意这个结构体变量是一个全局变量
创建的位置是在我们创建结构体类型的时候在最后的花括号和分号;之间写上变量名
)
1.结构体数组中的每一个元素都是一个结构体变量
2.每一个结构体元素的初始化都是用两个花括号来进行的,初始化化的顺序是结构体中的成员列表的顺序
3.结构体变量名可以表示一个结构体,且结构体数组名加下标也可以表示一个结构体,一样能用点操作符访问对应结构体的成员变量
1.访问结构体属性的意思就是访问结构体中的成员变量
1.所谓结构体嵌套其实就是创建结构体类型时,成员变量中有结构体变量
2.如果结构体变量A嵌套于结构体类型B中,则A对应的结构体类型要在结构体类型B前创建
3.访问嵌套结构体的逻辑顺序是 首先是对第一层用点操作符访问嵌套的结构体,然后再对嵌套结构体再用一次点操作符访问我们想访问的成员变量。 --- 箭头操作符同理
4.结构体变量的初始化都要用花括号包住后按照成员变量的顺序初始化
1.对于结构体传参而言,值传递这种方式是比较低效率的,它的传递需要我们建立一个结构体变量的临时拷贝,如果这个结构体变量的大小很大的话,就会造成空间的浪费,所以我们要用更加高效的传递方式 --- 地址传递 --- 通过地址直接找到结构体变量所在的内存空间,这样能够大幅减小内存空间的损耗。
2.我们可以直接通过结构体变量的指针访问和操作结构体的成员变量 , 方法是用箭头操作符 ->、
3.形参发生任何的改变都不会影响到实参,要想让函数中的操作影响到主函数的话我们必须用地址传递的方式传参给函数才行
1.const 的最大作用就是防止误操作 --- 当我们将不想改变的值用const修饰后,它就会变成一个常量,这样子的话当我们不小心误操作修改了这个量时,计算机也能够给我们报错
2.如果我们想要设置随机值的话,我们会用到 rand 函数 --- 格式如下 rand( )%a +b --- 这样的话rand函数就会随机生成 b 到 b+a -1 范围内的随机值 --- 只有整型,所以要用整型变量来接收
但是!!上面这种方式生成的只是伪随机数,如果想要效果根号的随机数的话!
我们需要通过时间戳去设置随机数种子,格式如下
在主函数中输入上面这行代码,同时在开头引用头文件 #include < ctime > 就能够设置好时间戳了



