gpt4 book ai didi

C:如何从函数返回单独的多个值到主函数

转载 作者:行者123 更新时间:2023-11-30 16:23:48 25 4
gpt4 key购买 nike

是否有可能从函数返回多个值到主函数,以便我可以在主函数中单独使用。我需要在我正在进行的项目中使用这个概念。由于该代码很大,我给出了一个简单的代码来显示我的要求。

#include <stdio.h>

int func ()
{
int a[3] = { 31, 32, 33};
static int x, y, z;
char b[20];

x = a[0];
y = a[1];
z = a[2];

printf ("%d\n", x);
printf ("%d\n", y);
printf ("%d\n", z);

return 0;
}

int main()
{
int x, y, z ;

func ();

printf ("%d\n", x);
printf ("%d\n", y);
printf ("%d\n", z);

return 0;
}

我邀请多种解决方案,但请务必用正确的代码解释您的概念。珍惜您的时间

最佳答案

您可以使用结构。

#include <stdio.h>

struct data_t {
int x, y, z;
};

struct data_t func (void)
{
int a[3] = { 31, 32, 33};
struct data_t data;

data.x = a[0];
data.y = a[1];
data.z = a[2];

printf ("%d\n", data.x);
printf ("%d\n", data.y);
printf ("%d\n", data.z);

return data;
}

int main(void)
{
struct data_t data;

data = func ();

printf ("%d\n", data.x);
printf ("%d\n", data.y);
printf ("%d\n", data.z);

return 0;
}

使用指针的替代方法:

#include <stdio.h>

void func (int* x, int* y, int* z)
{
int a[3] = { 31, 32, 33};

*x = a[0];
*y = a[1];
*z = a[2];

printf ("%d\n", *x);
printf ("%d\n", *y);
printf ("%d\n", *z);
}

int main(void)
{
int x, y, z;

func (&x, &y, &z);

printf ("%d\n", x);
printf ("%d\n", y);
printf ("%d\n", z);

return 0;
}

关于C:如何从函数返回单独的多个值到主函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53859142/

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