C 在函数中同时返回两个值

C 在函数中同时返回两个值,c,function,return-value,multiple-return-values,C,Function,Return Value,Multiple Return Values,如何在C编程语言中的一个函数中同时返回两个整型值,或者应该编写两个不同的函数?两个不同的函数或通过引用参数传递 e、 g 您可以创建一个包含两个整数的struct,并将此struct作为函数的结果返回 #include <stdio.h> int returnTwoInt(int *var2) { *var2 = 2; return 1; } int main() { int var2 = 0; int var1 = returnTwoInt(&a

如何在C编程语言中的一个函数中同时返回两个整型值,或者应该编写两个不同的函数?

两个不同的函数或通过引用参数传递

e、 g


您可以创建一个包含两个整数的
struct
,并将此
struct
作为函数的结果返回

#include <stdio.h>

int returnTwoInt(int *var2)
{
    *var2 = 2;
    return 1;
}

int main()
{
    int var2 = 0;
    int var1 = returnTwoInt(&var2);

    printf("%d %d\n", var1, var2);

    return 0;
}
在C语言中,您可以将数据存储在
struct
中,如下所示:

struct foo {
 int x;
 int y;
}

如果返回它们不是强制性的,并且您可以接受使用指针,则可能采用以下方法:

void your_function(/* some other parameters */ int *ret1, int *ret2) {
    int first_value, second_value;
    // do whatever you want there
    *ret1 = first_value; // first_value is the first value you want to return, quite obvious
    *ret2 = second_value; // still obvious
}
然后,您可以按如下方式调用它:

// somewhere
int r1, r2;
your_function(/* other parameters */ &r1, &r2);
// here you can use "returned" values r1, r2

在C语言中,函数只能返回一个值。 您可以通过地址将变量传递给函数,并使用函数对其进行修改

#include <stdio.h>

int returnTwoInt(int *var2)
{
    *var2 = 2;
    return 1;
}

int main()
{
    int var2 = 0;
    int var1 = returnTwoInt(&var2);

    printf("%d %d\n", var1, var2);

    return 0;
}
#包括
int returnTwoInt(int*var2)
{
*var2=2;
返回1;
}
int main()
{
int var2=0;
int var1=returnTwoInt(&var2);
printf(“%d%d\n”,var1,var2);
返回0;
}

您可以使用以下任一方法-

使用
struct
并返回
struct变量

使函数使用指针处理参数。
前-


这种答案在谷歌上很容易找到。你的意思是用数组中的“struct”这个词吗?请用英语@eestudentNo,他指的是struct。你是指按指针传递吗?C中的实现是“按指针传递”,但编程技术的名称通常称为“按引用传递”。
void f1(int *x, int *y){

*x  = 1;
*y  = 2;

 }

int main(int argc, char* argv[]) {
int x,y;
f1(&x, &y);
printf("%d %d",x,y);
return 0;
 }