gpt4 book ai didi

C++返回值

转载 作者:搜寻专家 更新时间:2023-10-31 00:04:47 25 4
gpt4 key购买 nike

我在 C++ 中有以下代码:

    int fff ( int a , int b )
{
if (a>b )
return 0;
else a+b ;
}

虽然我没有写'return' 否则它不会出错!
在我写的 main() 中:

cout<<fff(1,2);

它打印了 1 ?这是怎么发生的
谁能解释一下?

最佳答案

这就是所谓的未定义行为。任何事情都有可能发生。

C++ 不要求您总是在函数末尾返回一个值,因为有可能编写永远不会到达那里的代码:

int fff ( int a , int b )
{
if (a>b )
return 0;
else return a+b;

// still no return at end of function
// syntactically, just as bad as original example
// semantically, nothing bad can happen
}

但是,编译器无法确定您是否从未到达函数的末尾,它最多只能发出警告。避免在没有return 的情况下掉到尽头取决于您。

如果这样做,您可能会得到一个随机值,否则您可能会崩溃。

关于C++返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3563001/

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