指针和引用的区别

  • 指针是一个变量,指针变量的内存空间存储的值是某个内存地址
  • 引用就是变量的一个别名,对引用的操作与对变量直接操作完全一样,它和它引用的变量共用同一块内存空间,编译器不会为引用变量开辟内存空间。
  • int x=5;
    int* p=&x; //&x表示变量x的地址
    
    int x=5;
    int& y=x;

 

引用的声明: 类型标识符 &引用名=目标变量名;

注:1.不存在指向空值的引用,当被创建时,必须初始化,从而指向一个已经存在的对象;但存在指向空值的指针,可在任何时候初始化。

两者区别
  • 指针可以为空,但会造成野指针,因此用之前需要判断合法性;引用不可以为空
  • 指针可以有多级指针;引用只有一级,不存在引用的引用
  • 指针可以改变指向,而指向其它对象;引用不可以改变指向
  • 引用的内存大小就是所指向的变量的大小;指针的内存大小是4个字节
  • 引用比指针更安全。因为不存在空引用,引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用,因此引用很安全。指针可以随时指向别的对象,可以不被初始化,或为NULL,所以不安全
  • 自增运算意义不同:指针++后指向变量地址后面的内存;引用相当于自增
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值