2016 - 2024

感恩一路有你

c++引用和指针区别 引用与指针的区别?

浏览量:2703 时间:2021-03-11 19:09:03 作者:admin

引用与指针的区别?

引用访问是对变量的直接访问,而指针访问是间接访问。

引用是变量的别名。它不分配自己的内存空间,但指针有自己的内存空间。

引用在开头绑定到一个内存空间(必须在开头指定初始值),因此它只能是该

内存空间的名称,不能更改为任何其他名称。当然,您可以更改此内存空间的值。

例如

int I=3,j=4

int&x=I//成为I的别名

X=j//不能否认X仍然指I,而不是j的别名。它只是更改X和j共享的内存空间的值。

这与指针不同,它可以随时改变自己的点

引用,一个变量的别名,为什么要引入别名?原因是我们想定义一个变量,它共享另一个变量的内存空间。使用alias无疑是一个不错的选择。变量是什么?它是一个内存空间的名称。如果我们给这个内存空间起另一个名字,那就是我们可以共享这个内存。引用(别名)来自此。指针,指向另一个内存空间的变量。我们可以通过它索引另一个内存空间的内容。它有自己的存储空间。两者的区别:引用访问,变量是直接访问,指针是间接访问。引用是变量的别名。它不分配自己的内存空间,但指针有自己的内存空间。引用在开始时绑定到一个内存空间(初始值必须在开始时赋值),因此它只能是这个内存空间的名称,不能更改为任何其他名称。当然,这个内存空间的值是可以改变的。例如,int i=3,j=4,int&x=i//成为i=j//的别名X,不可否认X仍然指向i而不是j的别名,它只是改变X和j共享的内存空间的值,指针不同于指针,它可以随时改变它的点

简言之,指针是表示地址的无符号整数。

所以仅仅理解指针是不够的。您还需要知道指针指向的数据空间是如何排列的。这可能涉及到一些与特定CPU/OS相关的知识。如果我们能用计算机体系结构的知识来理解它,它会更深刻、更准确。

例如:

如何存储float/double/long double?

如何在数据空间中组织阵列?

字符串是如何存储的?

如何存储结构和联合体?

位域组织

具体CPU相关部分如下:

整数的存储将涉及CPU大小的指定

浮点数的存储直接关系到FPU的设计

此外,还有一些扩展知识,涉及内存的分配和释放:如何在程序中分配内存?(malloc/free)

什么是堆和堆栈?

总而言之:指针是地址和整数。但要充分利用它,我们需要了解计算机存储空间的分配。困难在这里,突破在这里。

c++引用和指针区别 c语言指针和指针变量 定义指针变量的一般形式为

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。