BandMan home

指针和引用的区别

在C++里,引用是设计者给出的一块语法糖。我认为指针和引用的最大区别在于const修饰符上,比如:

  1. int a = 2; int &s = a;//s可以修改,且对源对象起作用
  2. const int a = 2; const int &s = a;//s不能修改,且源对象也必须是常量对象
  3. int a = 2; int *p = &a;//可以修改,且对源对象起作用
  4. const int a = 2; const int *p = &a//不能修改内容,但可以修改指针地址,且源对象也必须是常量对象

搭配const产生的区别从上面可以看出,引用是源对象的另一个名字,而指针是源对象的地址,虽然都可以通过新建的引用或指针对源对象产生修改,但指针还是可扩展性更大,相对的,运用得好的难度也更大。

Fork me on GitHub