北大 C++ 1.4 引用

来源:互联网 发布:无人机摄影测量软件 编辑:程序博客网 时间:2024/06/14 18:14

引用

1.下面的写法定义了一个引用,并将其初始化位引用某个变量。

类型名 & 引用名 = 某变量名

eg.int n = 4;

int & r = n;    //r 引用了 n,r的类型是 int &

2. 某个变量的引用,等价于这个变量,相当于该变量的一个别名


注意的地方

  1. 定义引用时候一定要将其初始化成引用某个变量。
  2. 初始化后,它就一直引用该变量,不会再引起别的变量了。
  3. 引用只能引用变量,不能引用常量和表达式。

例1

#include <iostream> using namespace std;void swap(int &a, int &b){int tmp;tmp = a;a = b;b= tmp;}int main(){int n1,n2;n1 = 1; n2 = 2;swap(n1,n2);cout<<n1<<" "<<n2<<endl;return 0;}

例2

#include <iostream> using namespace std;int n = 4;int& SetValue(){return n;} int main(){SetValue() = 40;cout<<n;return 0;}


常引用


定义引用是,前面加const关键字,即为“常引用”

int n;

const int& r = n;

r的类型是 const int &


不能通过常引用去修改其引用的内容。

error:

 int n = 100;

const int & r = n;

r = 200; // error

n = 300; // correct


常引用和非常引用的转换


const T & 和 T &是不同的类型!!!  such as:      const int & != int &


T&类型的引用或T类型的变量可以用来初始化const T &类型的引用。


const T 类型的常变量(这个概念我们后面再说)const T &类型的引用则不能用来初始化T&类型的引用,除非进行强制类型转换








0 0
原创粉丝点击