gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:37:03 26 4
gpt4 key购买 nike

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

#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:如何从函数返回单独的多个值到 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35966557/

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