gpt4 book ai didi

c++ - 指针和左值引用

转载 作者:行者123 更新时间:2023-11-28 00:41:45 25 4
gpt4 key购买 nike

我有这种情况。

 case 1
void printInt(int & i) {}

int main () {
int i=1;
printInt(&i);

}

printInt 需要一个引用,因此,在 main 中,我调用了 printInt 函数并提供了引用 i。这是正确的吗?

那我也可以做

 case 2
int main () {
int i=1;
printInt(i); // i is a lvalue, and printInt function is expecting a lvalue

}

所以,情况 1 和情况 2 看起来是相互冲突的吗?

最佳答案

第一种情况甚至无法编译,因为您传递的是 int*,但编译器期望引用 int 类型。

printInt(&i);

在上面的语句中,您传递了一个整数的地址。所以,在接收端它应该是一个指针。

编辑:

我认为您混淆了指针和引用。将引用视为变量的别名。某种程度上的类比就像放置在桌面上的应用程序的快捷方式。单击快捷方式时,实际上是在运行安装在 Applications 目录中的可执行文件。因此,快捷方式更像是运行应用程序可执行文件的别名。

是否可以使用为一个应用程序放置的快捷方式来打开不同的应用程序?不可以。出于类似的原因,无法重新设置引用。

关于c++ - 指针和左值引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549330/

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