gpt4 book ai didi

c++ - 通过引用传递时取消引用指针

转载 作者:IT老高 更新时间:2023-10-28 12:29:11 25 4
gpt4 key购买 nike

在通过引用传递函数时取消引用指针会发生什么?

这是一个简单的例子

int& returnSame( int &example ) { return example; }

int main()
{
int inum = 3;
int *pinum = & inum;

std::cout << "inum: " << returnSame(*pinum) << std::endl;

return 0;

}

是否产生了临时对象?

最佳答案

取消引用指针不会创建拷贝;它创建一个引用指针目标的 lvalue。这可以绑定(bind)到 lvalue 引用参数,因此该函数接收对指针指向的对象的引用,并返回对该对象的引用。这种行为是明确定义的,并且不涉及临时对象。

如果它按值获取参数,那么这将创建一个本地拷贝,并且返回对其的引用将是不好的,如果访问它会给出未定义的行为。

关于c++ - 通过引用传递时取消引用指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347111/

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