C 请告诉我当返回多个变量时,存储哪一个变量?

C 请告诉我当返回多个变量时,存储哪一个变量?,c,C,我遇到了这段代码,想知道这行[X]将返回什么: int add_multiply(int a, int b) { int p, q; p = a + b; q = a * b; return (p, q); //X } void main() { int b, a = add_multiply(1, 2); b = add_multiply(3, 4); printf("%d%d", a, b); } 不能从C中的函数一次返回多个变量 return(p, q); /

我遇到了这段代码,想知道这行[X]将返回什么:

int add_multiply(int a, int b)
{
  int p, q;
  p = a + b;
  q = a * b;
  return (p, q); //X
}
void main()
{
  int b, a = add_multiply(1, 2);
  b = add_multiply(3, 4);
  printf("%d%d", a, b);
}

不能从C中的函数一次返回多个变量

return(p, q); // or return p, q; 

只返回q。在p中,q是a。p将被计算,其值将被丢弃,然后q将被计算,然后其值将被返回。

始终是最后一个值。另外,不要使用void main。这太难看了。@Magisch胡说八道,void main在泛型C上下文中没有任何错误。如果没有dup,我会感到惊讶:你可以添加这一点,因为return不是函数,他会得到与return p,q;相同的结果;。为什么returnp,q等于returnp,q?我是说,int a;a=5,6;和int a;a=5,6;是不同的…@CoolGuy;在a=5,6;,表达式的计算结果为a=5,6;而在返回p,q中,它将返回p,q.@haccks,因此,无法使用return语句中的逗号运算符返回p?@CoolGuy;是的,有:返回q,p;: