C++基础之:引用与指针的区别
来源:互联网 发布:windows 音量 编辑:程序博客网 时间:2024/05/29 15:21
在C++中指针和引用的功能很相似,共同点为都可以直接或者是间接地指代其他的对象。下面介绍不同点
1:操作符
指针使用“*”和“->”操作符,引用使用的是“.”
2:变量初始化
首先引用不能为空,指针可以为空。
引用必须要指代对象,指针可以在初始化时
string &str;//错误,引用不能为空
string s("liyachao");
string &rs=s;//可以
string *ps;//可以,指针没有限制
注意:不要引用空的地址,例如:
char * pc=0;//指针指向空地址
char & rc = *pc;//引用指向空地址,导致结果不确定,危险
3:效率问题,引用比指针更有效
由于引用不能为空,所以他比指针效率更高,用在函数参数时,引用不需要检查是否有效,而指针在使用时必须检测是否为空。
4:重新赋值
指针可以重新复制,用来指向另外一个不同的对象;引用总是指向他初始化时指代的对象。
string s1("liyachao");
string s2("harry");
string & rs = s1;//可以,指向s1
string *ps = &s1;//可以指向s1
rs = s2;//rs仍然指向s1,但是s1的值变成了"harry"
ps = s2;//ps指向s2,s1值不变
总结:
使用指针的情况:
当有可能什么都不指向时,或者是在不同的时候指向不同的对象时用指针。
使用引用的情况:
1:总会指向一个对象,并且一旦指向哪个对象,就不会指向其他的对象,使用引用。
2:当实现某些操作符的时候。比如:[],这个操作符通常需要返回一个值作为(下一个)赋值语句的赋值目标。
vector<int> v(10);
v[5] = 10;//目标为返回操作符[]
如果[]操作符返回一个指针,上面最后一个语句就必须写成:
*v[5] = 10;
绝大多数情况下[]操作符应该返回引用。
- C++基础之:引用与指针的区别
- C/C++ 之指针与引用的区别
- 【每日一C之十二】指针与引用的区别
- 【C/C++】指针与引用的区别
- 指针与引用的区别 (MoreEffictive C++)
- C/C++ 指针与引用的区别
- 【C++】指针与引用的区别
- 引用 与 指针的区别 -- C
- C语言---指针与引用的区别
- C中指针与引用的区别
- C/C++ 指针与引用的区别
- c中指针与引用的区别
- C++基础之引用与指针的区别与联系、常引用使用时应注意的问题
- C++基础之引用与指针的区别与联系、常引用使用时应注意的问题
- C、C++基础知识之 引用与指针区别
- 【C++】指针&引用的区别
- 指针与引用的区别
- 指针与引用的区别
- 设计模式(一)Singleton,Command
- 设计模式
- JS的全选与删除
- VC6.0 VS2008 openGL 环境配置
- WINCE BSB中dirs, sources,sources.cmn文件
- C++基础之:引用与指针的区别
- VMware改变硬盘空间大小的方法
- C语言关键字----Const
- 用C实现程序的多态性
- 我对AutoCompleteTextBox的理解
- sicily 1090
- 生活随笔:换sdk的惨痛升级
- 僵尸进程
- Hibernate事务处理的悲观锁和乐观锁