首页 > 解决方案 > 通过C中的函数将值分配给整数数组

问题描述

我正在制作一个奇怪的不实用的程序,它调用了四个函数。

第一个函数将 30 个整数读入一个数组;

第二个做同样的事情,但对另一个数组;

第三应该创建另一个有 60 个元素的数组,一半是第一个数组的元素,另一半是第二个数组的元素;

第四个将向用户显示整个数组。

我被困在我的第三个功能上。我没有找到任何解释如何通过函数更改整数数组的值。

#include <stdio.h>

void array1(int *a1);
void array2(int *a2);
void mash(int *a1, int *a2, int *a);
void exhibit(int *a);

int main()
{
    int a1[30];
    array1(a1);


    int a2[30];
    array2(a2);


    int a[60];
    mash(a1, a2, a);


    exhibit(a);


    return 0;
}


void array1(int *a1)
{
    int temp[30];
    for (int i = 0; i < 30; i++)
    {
        scanf("%i", a1 + i);
    }
}


void array2(int *a2)
{
    for (int i = 0; i < 30; i++)
    {
        scanf("%i", a2 + i);
    }
}


void mash(int *a1, int *a2, int *a)
{
    for (int i = 0; i < 30; i++)
    {
        a + i = a1 + i;
    }
}


void exhibit(int *a)
{

}

我认为我应该能够通过向指针添加 1 来访问每个元素,就像我在之前的函数中获取输入一样。

标签: cfunction

解决方案


您想访问这些指针,即像这样取消引用它们:

*(a + i) = *(a1 + i);

为了让它不那么难看,有语法糖:

a[i] = a1[i];

推荐阅读