美文网首页
3 - 指针和引用的区别

3 - 指针和引用的区别

作者: 李伟13 | 来源:发表于2020-05-04 12:22 被阅读0次

引用是refer to
指针是point to
指针和引用均为复合类型

指针本身为一种对象
引用就是一个对象的别名

  • 引用不可以为空,但指针可以为空。

  • 引用不可以改变指向;但是指针可以改变指向,而指向其它对象

  • 引用的大小为所指对象的大小,指针是指针本身的大小.

  • 指针占内存空间,引用不占内存空间

https://blog.csdn.net/lyd_253261362/article/details/4323691

★ 相同点:
   1. 都是地址的概念;
    指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。
   ★ 区别:
   1. 指针是一个实体,而引用仅是个别名;
   2. 引用使用时无需解引用(*),指针需要解引用;
   3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
   4. 引用没有 const,指针有 const,const 的指针不可变;
   5. 引用不能为空,指针可以为空;
   6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
   typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。
   7. 指针和引用的自增(++)运算意义不一样;
★ 联系
1. 引用在语言内部用指针实现(如何实现?)。
2. 对一般应用而言,把引用理解为指针,不会犯严重语义错误。引用是操作受限了的指针(仅容许取内容操作)。

<2.4.1> const的引用
"对常量(const)的引用" 常简称为 "常量引用"(相较于指针const的两种形式)

const int ci = 1024;
const int &r1 = ci;

常量引用可以指向变量,但是不可以通过常量引用修改变量的值.

int i = 42;
int &r1 = i;
const int &r2 = i; 
r1 = 0;
r2 = 0;//错误

<2.4.2>指针和const
与常量引用相似


要点是,不能通过常量引用或指针改变所指对象的值.

我大概懂了.
const 引用如果按照指针那样本该分为对常量的引用常量引用两个部分
但是因为引用本身就必定指向一个对象,所以其实不存在常量引用
.
const 指针分为对常量的指针常量指针
对常量的指针不能通过这个指针改变它所指向对象的值

const int *p

常量指针即不能改变这个指针指向的地址

int *const p;

在读表达式时,从右往左读。

相关文章

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • 3 - 指针和引用的区别

    引用是refer to指针是point to指针和引用均为复合类型 指针本身为一种对象引用就是一个对象的别名 引用...

  • Java.2018-08-01

    Java简介 Java语言不使用指针,而是引用指针和引用区别1指针和引用区别2 只支持类之间的单继承,但支持接口之...

  • 面试系列之指针和引用的使用场景

    先抛出两个问题: 指针和引用有什么区别? 什么时候应该使用指针?什么时候应该使用引用? 指针和引用的区别 首先看一...

  • C++基本问题——指针与引用的区别

    指针与引用的区别 指针可以是空指针,但是引用不能是空引用。这就导致下面一个区别。 指针可能是非法的,引用总是合法的...

  • 【学习笔记】指针

    1. 概述 2. 指针和引用的区别 通过下面一段代码可以清楚看出指针和引用的区别: Result:&num: 0x...

  • 指针和引用的区别

    转自 :c++中,引用和指针的区别 自己小结: (1)非空区别 (2)合法性区别 (3)可修改区别 (4)应用区别

  • 引用和指针的区别

  • 指针和引用的区别

    指针和引用在C++中很常用,但是对于它们之间的区别很多人都不是太熟悉,下面来解释下他们2者之间的区别和用法。 1....

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

网友评论

      本文标题:3 - 指针和引用的区别

      本文链接:https://www.haomeiwen.com/subject/nmqnwhtx.html