c - 函数返回两个用 C 中的逗号分隔的东西

标签 c

<分区>

好的,这是代码。

#include <stdio.h>
int addmult (int,int);
int main (void)
{
    int i=3,j=4,k,l;
    k = addmult(i,j);
    l = addmult(i,j);
    printf("%d %d\n",k,l);
    return 0;
}

int addmult ( int ii, int jj )
{
    int kk,ll;
    kk = ii + jj;
    ll = ii*jj;
    return(kk,ll);
}

在 C 语言中,一个函数如何同时返回两个东西?

编辑:此代码运行良好。我想知道,它为什么有效?

最佳答案

你问的是什么线路

return(kk,ll);

您是否或如何从一个函数返回多个值?

要回答第一个问题,这段代码在功能上等同于:

int ret = (kk,ll);
return ret;

这可能会使它更清楚一些。这是逗号运算符的一个实例,计算结果是它的第二个操作数,所以代码实际上在功能上也等同于:

return ll;

永远不会使用 kk 值。

要解决您的问题的第二种可能解释:使用结构,例如:

struct product_and_sum
{
  int product;
  int sum;
};

更改函数以返回 struct product_and_sum 并返回适当初始化的结构值。

关于c - 函数返回两个用 C 中的逗号分隔的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24712884/

相关文章:

c - 在 C 中每 X 分钟运行一次命令

c - PowerPC 604 上的整数对齐和字边界规则

iphone - 使用 Go 为 iPhone 应用程序编写库

.net - Linq 查询从该 XML 解析/获取内容 (WSDL)

c - 替换入口点函数会导致段错误

c++ - sizeof 如何知道数组的大小?

c - 作为结构的二维指针

c - 唯一的随机数

c - 在 typedef struct 中指定结构名称

c - 函数指针属于哪个缓存?