gpt4 book ai didi

c++ - 指针和引用之间的底层区别是什么?

转载 作者:可可西里 更新时间:2023-11-01 14:54:26 25 4
gpt4 key购买 nike

如果我们有这段代码:

int foo=100;
int& reference = foo;
int* pointer = &reference;

引用的数据和指针的数据没有实际的二进制差异。 (它们都包含 foo 在内存中的位置)

第 2 部分

那么指针和引用之间的所有其他差异(discussed here) 进来了?编译器是否强制执行它们,或者它们实际上是汇编级别的不同类型的变量?换句话说,以下是否产生相同的汇编语言?

foo=100;
int& reference=foo;
reference=5;

foo=100;
int* pointer=&foo;
*pointer=5;

最佳答案

理论上,它们可以以不同的方式实现。

实际上,我见过的每个编译器都会编译指向相同机器代码的指针和引用。区别完全在于语言层面。

但是,就像 cdiggins 所说的那样,在您验证它对您的编译器和平台是正确的之前,您不应该依赖这种概括。

关于c++ - 指针和引用之间的底层区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1640355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com