引用和指针的区别是:1、程序为指针变量分配内存区域,而不为引用分配内存区域;2、引用在定义时初始化,之后无法改变,指针可以发生改变;3、指针在使用时需要加“*”,引用可以直接使用。

首先指针和引用都是地址的概念,指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。

(推荐教程:c语言教程)

详细介绍:

程序为指针变量分配内存区域,而不为引用分配内存区域。

指针使用时要在前加 * ,引用可以直接使用。

引用在定义时就被初始化,之后无法改变;指针可以发生改变, 即引用的对象不能改变,指针的对象可以改变。

没有空引用,但有空指针。这使得使用引用的代码效率比使用指针的更高。因为在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。

对引用使用“sizeof”得到的是变量的大小,对指针使用“sizeof”得到的是变量的地址的大小。

理论上指针的级数没有限制,但引用只有一级。即不存在引用的引用,但可以有指针的指针。

int **p //合法int &&p //非法

++引用与++指针的效果不一样。

例如就++操作而言,对引用的操作直接反应到所指向的对象,而不是改变指向;而对指针的操作,会使指针指向下一个对象,而不是改变所指对象的内容。

更多相关文章

  1. 在c语言中char型数据在内存中的存储形式是什么?
  2. c语言指针用法有哪些
  3. C语言中的指针有什么作用
  4. c++引用和指针的区别是什么?
  5. golang不用指针可以吗
  6. golang中的map是指针吗
  7. golang 引用和指针的区别
  8. golang 内存泄露的原因
  9. golang 什么时候使用指针

随机推荐

  1. Android 白板代码实现
  2. Android 应用间跳转
  3. Android DNK安装笔记
  4. Android利用TextView制作跑马灯该效果
  5. Android(安卓)获取屏幕尺寸与密度
  6. Android 面试总结之布局常见问题
  7. Android中一个Activity多个intent-filter
  8. Android部分控件的特殊属性
  9. 控件(1)spinner
  10. EditText输入限制相关