添加随机数种子,利用系统升级建生成随机数
#include<ctime>
srand((unsigned int)time(NULL))
栈区:数据由编译器管理分配和释放
不要返回栈区变量地址:
形参数据、局部变量,存放在栈区,栈区数据在函数执行完自动释放。
第一次可以打印是因为编译器做了保留。
堆区:由程序员管理开辟和释放
利用new关键字,可以将数据开辟到堆区
利用new创建的数据,会返回该数据对应类型的指针。
delete:释放数据地址
delete[ ]:释放数组
引用:本质是给变量起别名
语法:数据类型 &别名=原名
注意事项:
1.引用必须初始化
2.引用在初始化后不可改变
引用作为函数参数:
作用:函数传参时,可以利用引用让形参修饰实参
优点:可以简化指针修改实参
引用作函数返回值:
1.不要返回局部变量的引用
2.函数的调用可以作为左值
引用使用的场景,通常用来修饰形参。
函数中利用常量引用防止误操作修改实参。
(const)
函数默认参数:
在c++中,函数的形参列表中的形参是可以有默认值的。
语法:返回值类型 函数名(参数=默认值){}
如果有传入数据,则用传入值。
注意事项:
1.如果某个位置已经有了默认参数,那么从这个位置往后从左到右都必须有默认值。
2.如果函数声明有默认参数,那么函数实现就不能有默认参数。
函数占位参数:
c++函数的形参列表中可以有占位参数,用来做占位,调用时必须填补该位置。
函数重载:
作用:函数名相同,提高复用性。
满足条件:
同一个作用域下
函数名称相同
函数参数类型不同或者顺序不同或者个数不同
注意:函数返回值不可作为函数重载的条件。