kanqiaoshang
kanqiaoshang
  • 发布:2021-04-01 13:00
  • 更新:2021-04-01 13:00
  • 阅读:432

C++的35个技巧阅读笔记(一)

分类:流应用

1.仔细区别指针和引用
1、引用必须代表某个对象,没有所谓null引用,因此必须有初值。
2、使用引用可能会比使用指针更有效率,因为使用引用之前不需要测试其有效性。
3、指针可以被重新赋值,指向另一个对象,指针 却总是指向(代表)它最初获得的那个对象。

string s1("Nancy");
string s2("Clancy");
string& rs = s1; //rs代表s1
string *ps = &s1; //ps指向s1
rs = s2; //rs任然代表s1,但是s1的值现在变成了“Clancy”
ps = &s2; //ps现在指向s2,s1没有变化。
1
2
3
4
5
6
使用引用:
1、确定“总是会代表某个对象”,而且“一旦代表了该对象就不能够再改变”。
2、当实现某些操作符时候,例如:operator[] ,必须返回某种“能够被当作assignment赋值对象”的东西:引用。
3、当实现一个操作符而其语法需求无法由pointers 达成,就选择reference,其他任何时候,请采用pointers。
使用指针:
需要考虑“不指向任何对象”的可能性,或考虑“在不同时间指向不同对象”的能力。

不同点:
1、指针是一个变量,引用是别名。
2、对引用求地址,就是对目标变量求地址。即引用名是目标变量名的一个别名。引用在定义上是说引用不占据任何内存空间,但是编译器在一般将其实现为const指针,即指向位置不可变的指针,所以引用实际上与一般指针同样占用内存。。3、指针有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)。
4、“sizeof引用”得到的是所指向的变量(对象)的大小,而”sizeof指针”得到的是指针本身的大小。
5、指针和引用的自增(++)运算意义不一样;
6、引用常见的使用用途:作为函数的参数、函数的返回值。

0 关注 分享

要回复文章请先登录注册