gpt4 book ai didi

c++ - 在这里返回临时地址是未定义的行为吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:58 24 4
gpt4 key购买 nike

这是 C++ 中的未定义行为吗?

#include <iostream>

const double& abs(const double& x){
return x>0 ? x:-x;
}

int main () {

double x = -10.0;
double y = abs(x);

std::cout << y << std::endl;

return 0;
}

g++ 不喜欢它:

mem.cpp: In function ‘const double& abs(const double&)’:
mem.cpp:4: warning: returning reference to temporary

并且 valgrind 会产生各种错误。

最佳答案

是的。三元运算符的结果是暂时的,将一旦你从函数返回就不再存在。

关于c++ - 在这里返回临时地址是未定义的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12203754/

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