(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。 (2)可以有const指针,但是没有const引用; (3)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的 ...
分类:
其他好文 时间:
2019-08-08 10:30:47
阅读次数:
98
由 <<C++ Primer>> 练习7.49 (b) 产生出来的小问题。 总结: 1.不要对临时变量进行改变。要传递临时变量,得用常量引用。 2. 当引用不需要更改时,用const引用。 问题: 解决: 参数使用const 引用 ...
分类:
编程语言 时间:
2019-03-01 18:42:24
阅读次数:
239
1.const指针 eg: (1) int const * p = nullptr; p = new int[10]; p[3] = 4; //error 我们发现第三行没法编译,这是因为第一行的const限制的时int,意思就是无法改变p所指的int类型的值。 (2) int * const p ...
分类:
其他好文 时间:
2019-02-05 10:36:45
阅读次数:
143
拷贝控制 右值与const引用 背景:当一个函数的返回值是自定义类型时,调用侧用什么类型接收?? 1,如果自定义类型的拷贝构造函数的参数用const修饰了:可以用下面的方式接收。 2,如果自定义类型的拷贝构造函数的参数没有用const修饰了:必须用下面的方式接收 编译错误: 解释: 第一种条件下,用 ...
分类:
编程语言 时间:
2018-12-04 00:07:02
阅读次数:
217
尽量避免使用值传递,推荐使用const 引用来传递参数 临时变量的代价。 循环体中的局部变量,尽量在循环体内定义 复制操作与构造析构函数的代价差异。 避免过大的循环 cache的时间局限性和空间局限性 时间局限性:如果一个存储单元被访问,则可能该单元会很快再次被访问,因为存在循环; 空间局限性:如果 ...
分类:
编程语言 时间:
2018-12-01 11:06:44
阅读次数:
217
思考cost int &a = b PK const int &a = 10; 在C++中可以声明const引用 const Type& name = var; const引用让变量拥有只读属性 const引用结论 1)Const & int e 相当于 const int * const e 2) ...
分类:
其他好文 时间:
2018-09-23 18:14:56
阅读次数:
169
引用作为变量别名而存在,因此在一些场合可以代替指针 引用相对于指针来说具有更好的可读性和实用性 swap函数的实现对比如下: 注意: 函数中的引用形参不需要进行初始化。 示例程序如下: 形参没有初始化,而是在第15行调用的时候对引用形参进行初始化。 const引用: 当使用常量对const引用进行初 ...
分类:
其他好文 时间:
2018-08-22 00:22:33
阅读次数:
207
6.16:下面这个函数虽然合法,但是不算特别有用。指出它的局限性并设法改善。 bool is_empty(string& s) { return s.empty(); } Ans:局限性:不能直接传给形参一个字符串字面值,并且函数中并没有修改s,形参应该设置为const引用。 改善:bool is_ ...
分类:
其他好文 时间:
2018-08-14 21:08:04
阅读次数:
179
(1)指针是一个实体,有分配内存空间,引用只是一个别名,不分配内存空间 (2)指针不用但最好初始化,引用必须初始化 (3)引用只能初始化一次,指针可以多次赋值 (4)可以有const指针,但没有const引用,例如 int* const p合法,int& const p有些编译器会报错,有些编译器会 ...
分类:
编程语言 时间:
2018-05-17 00:50:53
阅读次数:
214