使用引用还是使用指针
来源:互联网 发布:java冒泡排序法代码 编辑:程序博客网 时间:2024/05/18 02:18
最近碰到一个面试题:何时使用指针,何时使用引用?
首先,标准 C 中是没有引用形参的,只能使用指针形参,应用是c++才加入的,c++中,引用可以看做变量的别名。
那么引用和指针有什么区别呢?主要有两点
(1)指针变量可以为空(引用必须指向具体对象,必须初始化)
(2)指针变量可以被重复赋值或更改(引用则不行,一经赋值不能再改,只能改变变量的值)
最后,使用指针还是引用呢
在c++中,引用可以认为是多余的,几乎所有使用引用可以完成的任务都可以使用指针来完成。
大多数情况下,应该使用应用而不是指针,引用可以让程序整洁并易于理解,此外,引用比指针安全:不可能存在无效的引用,也不需要显式的解除引用。对象的引用甚至可以像指针那样支持多态性。只有在需要改变所指地址的时候,才需要指针。例如:当动态分配内存的时候,应该讲结果存储在指针而不是引用中。
还有一种方法可以判断使用指针还是引用作为参数以及返回类型:考虑谁拥有内存。如果接受变量的代码负责释放相关对象的内存,必须使用指向对象的指针,如果接受变量的代码不需要释放内存,那么应该使用引用。
通俗点讲,可以归为以下几点:
(1)、考虑到存在不指向任何对象的可能(在这种情况下,你能够设置指针为空),二是你需要能够在不同的时刻指向不同的对象(在这种情况下,你能改变指针的指向)。你必须使用指针
(2)、如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,例如你的设计不允许变量为空,那么你应该使用引用
(3)、如果数据对象是较大的结构,则使用const指针和或const引用,以提高程序的效率,类对象在数据结构和语义上非常适合使用引用,这也是C++新增引用这项特性的主要原因。因此传递类对象参数的标准方式是按引用传递。
(4)、当你重载某个操作符时,你应该使用引用
(5)、当数据对象是数组,则应该使用指针,虽然可以使用引用,但是当使用引用时,必须指明所引用数组的大小,没有使用指针方便。
- 使用引用还是使用指针
- 到底是使用引用还是指针?
- C++异常对象传递的时候,使用普通对象还是指针还是引用(使用引用)
- style 引用时使用@还是?
- 指针还是引用
- 引用和指针使用原则
- 指针与引用使用总结
- 指针和引用的使用
- 引用和指针的使用
- 使用指针引用数组元素
- android在引用资源时使用@还是?
- 什么时候使用引用?和什么时候使用指针
- 什么时候使用引用、什么时候使用指针
- 指针的指针还是指针的引用
- const使用注意事项 指针 引用,指针引用区别
- 使用对象,还是对象的指针
- 引用和指针的使用区别
- c++指针和引用的使用浅谈
- WiFi密码破解
- 在浏览器中播放音频文件的兼容性问题
- Sql Server cursor 的使用处理重复数据 动态拼接 SQL语句
- mysql命令大全
- sfewfesfs linux病毒 网络ping不通
- 使用引用还是使用指针
- jsp中的taglib
- 注意引用的用法
- VC++中的char,wchar_t,TCHAR
- 约瑟夫环问题
- 字符串统计
- jsp中的usebean
- Enable MFA for a user
- 谁获得了最高奖学金