好的,这是代码。
#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中同时返回两个东西?
编辑:此代码完美无缺。我想知道,为什么会有效?
答案 0 :(得分:2)
你在问什么行
return(kk,ll);
是否或如何从函数返回多个值?
要回答第一个问题,此代码在功能上等同于:
int ret = (kk,ll);
return ret;
这可能会让它更清晰一些。这是逗号运算符的一个实例,它计算结果为第二个操作数,因此代码实际上也等同于:
return ll;
永远不会使用kk值。
要解决您问题的第二种可能解释:使用结构,例如:
struct product_and_sum
{
int product;
int sum;
};
更改函数以返回struct product_and_sum
并返回适当初始化的struct值。