摘要: 左值指的是既能够出现在等号左边也能出现在等号右边的变量(或表达式),右值指的则是只能出现在等号右边的变量(或表达式) 通常来说有名字的变量就是左值,而由运算操作所产生的中间结果(没有名字)就是右值 对于基础类型,右值是不可被修改的(non-modifiable),也不可被 const, volati 阅读全文
posted @ 2022-04-09 15:43 纸包鱼 阅读(167) 评论(0) 推荐(0)
摘要: 返回值为值类型时。使用临时对象(temporary object)来保存函数的返回值。函数的返回值用于初始化调用点的一个临时对象,该临时对象就是函数调用的结果。其返回值为右值。不能作为左值。 返回值是引用类型时,其返回值即为return的变量,所以不需要临时对象保存其返回值。所以,对于返回值为引用类 阅读全文
posted @ 2022-04-09 15:27 纸包鱼 阅读(489) 评论(0) 推荐(0)
摘要: 将引用作为形参也可以直接改变实参 因为引用相当于对再次进行了一个变量名到变量地址的映射,这时使用的形参改变值的时候改变的也是真实实参地址中的值,当函数结束后,局部变量会销毁,但是因为引用生成变量代表的那快地址此时依旧有其他的变量名在占用,所以只会销毁形参的变量名,不会销毁地址中的值 阅读全文
posted @ 2022-04-09 14:50 纸包鱼 阅读(103) 评论(0) 推荐(0)
摘要: 引用:给变量取一个别名 数据类型 & 新名 = 原名,数据类型与原名一致。 这样新名与原名都对应到同一段地址中存放的数据,只不过有了两个名字,并不是拷贝操作 引用在使用时必须要进行初始化,并且初始化之后不可改变 可以定义数组引用,不能定义引用数组,可以定义指针数组 int a, b, c;int* 阅读全文
posted @ 2022-04-09 14:45 纸包鱼 阅读(31) 评论(0) 推荐(0)
摘要: 开辟数组 new 数据类型 【元素数】 返回一个连续空间的首地址 释放数组 delete【】 变量名 阅读全文
posted @ 2022-04-09 14:17 纸包鱼 阅读(132) 评论(0) 推荐(0)
摘要: 栈区,编译器运行程序中自动保存,自动释放 注意不要放回函数的局部变量的地址,因为函数结束后就自动的销毁了,所以此时这个局部变量得地址无用,形参也是一个局部变量,因为是拷贝过去的 堆区,程序员手动申请,手动释放 new用来申请内存 数据类型 *变量名 = new 数据类型 变量 return 变量名 阅读全文
posted @ 2022-04-09 14:14 纸包鱼 阅读(72) 评论(0) 推荐(0)
摘要: static修饰静态变量 const修饰局部,全局常量 const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间,直到程序执行完才释放,使用的时候沿用上一次的那个值 在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝; 在 阅读全文
posted @ 2022-04-09 13:56 纸包鱼 阅读(72) 评论(0) 推荐(0)
摘要: 代码区:存放所有代码的二进制 全局区,存放全局变量,静态变量,常量 栈区,编译器自动分配与释放,存放函数参数值和局部变量,随函数结束而释放 堆区,有程序员进行分配与释放,或者函数结束时自动释放 不同区域用于存放那个不同的数据,有不同的生命周期 在程序编写完,编译后,生成exe文件,这时已经出现两个区 阅读全文
posted @ 2022-04-09 13:52 纸包鱼 阅读(38) 评论(0) 推荐(0)
摘要: c++中的rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。 一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数 rand()的缺点:第一次运行这个程序产生的随机数,之后再运行程序的时候这个随机数不会变。为了每 阅读全文
posted @ 2022-04-09 10:52 纸包鱼 阅读(146) 评论(0) 推荐(0)
摘要: 数组本身并不支持拷贝和赋值,并且使用数组是通常将其转化成指针,在很多用到数组名字的地方,编译器都会自动地将其替换为一个指向数组首元素的指针 因为不能拷贝数组,所以我们无法以值传递的方式使用数组参数。因为数组会被转换成指针,所以当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针 void 阅读全文
posted @ 2022-04-09 10:50 纸包鱼 阅读(511) 评论(0) 推荐(0)