C:如何将多个值从函数返回到main

用户名

有没有可能将多个值从函数返回到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;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档