您的位置:首页 > 其它

引用与指针的区别总结

2012-10-11 22:46 246 查看
1) 引用是一个变量的别名

int n = 10;

int &m = n;

r = 20; //此时n = 20

2) 引用必须在声明的同时初始化

int *p;

p = &n; //ok

-----------------------------

int &m; //error

m = n; //error

-----------------------------

int &m = n; //ok

3) 引用的唯一性(引用一旦初始化,就不能在成为另一个变量的引用)

int n = 10;

int& m = n;

int a = 20;

m = a; //出问题了,虽然不报错,此步骤相当于让 把 a 的值赋值给了 n ,所以结果为 n == 20

m = 30 //此时 a == 20, 而不是 a == 30, 此时 n == 30, 所以 m 并没有成为 n 的引用

4) 不能有空引用

int *p = NULL;

int &m = NULL; //error (既然引用就是别名,那就和人一样,得有个人才能别一个名儿出来)

5) 不能声明引用型数组

char* pn[2];

char& m[2] = {a, b}; //error, 引用数组没有分配空间,无法保存元素地址,所以不存在引用数组

6) 一般引用不能应用常量,引用常量要用常引用

int &m = 10; //error

const int &m = 10; //OK

r = 20; //error

--------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: