gpt4 book ai didi

c++ - 函数中的多个返回值

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:10 29 4
gpt4 key购买 nike

我遇到了下一个样本:

#include <stdio.h>

// test multiple return
int foo()
{
return 1,2,3,4,5,6;
}

// main entry point
int main(int argc, char* argv[])
{
printf("foo returns: %d\n", foo());
return 0;
}

编译它,然后运行:

gcc main.cpp -o main
./main

结果让我很困惑:

foo returns: 6

问题是:为什么没有编译时错误?

最佳答案

在这种情况下:

return 1,2,3,4,5,6;

实际上是comma operator .它按顺序(从左到右)评估逗号之间的所有内容,并返回最后一个。

这就是它返回并打印 6 的原因。 是的,它是有效代码。这就是没有编译器错误的原因。 (虽然 1,2,3,4,5 部分在这种情况下没有做任何事情。)

在 C 和 C++ 中,您不能返回多个值。您必须使用结构或类来执行此操作。

关于c++ - 函数中的多个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9015792/

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