这可能吗? C中的数组

时间:2016-05-18 17:43:44

标签: c arrays

我有一个问题,我可以这样做吗?将变量存储在同一个数组中。

int var1 = 20;
int var2 = 200;
int var20 = 100;

int array[3] = { var1, var2, var20 };

return 0;

1 个答案:

答案 0 :(得分:6)

这取决于您拥有代码的位置。

如果它像全局变量那样:

#include <stdio.h>
int var1 = 20;
int var2 = 200;
int var20 = 100;

int array[3] = { var1, var2, var20 };

int main(void) {

     return 0;
}

这是非法的,因为初始化程序不是常量。

如果你把它放在像这样的函数中:

#include <stdio.h>

int main(void) {
    int var1 = 20;
    int var2 = 200;
    int var20 = 100;

    int array[3] = { var1, var2, var20 };

    return 0;
}

这是有效的代码。

如果需要,还可以从传递给函数的参数构建数组。像:

#include <stdio.h>

void someFunc(int var1, int var2, int var3)
{
    int array[3] = { var1, var2, var3 };
    for (int i=0; i < 3; ++i)
    {
        printf("%d\n", array[i]);
    }
}

int main(void) {
    int var1 = 20;
    int var2 = 200;
    int var20 = 100;

    someFunc(var1, var2, var20);

    return 0;   return 0;
}