我有这些变量:
details
我希望将它们插入数组中。
val1 = 24.00
val2 = 71.3
val3 = 9.30
val4 = 45.3
有没有办法做到这一点。对不起,我试图让我的头围绕C中的阵列,这就是我到目前为止所有:
array[0] = 24.00
array[1] = 71.3
array[2] = 9.30
array[3] = 45.3
我知道这不对,但我不确定如何将变量元素插入到数组中。任何帮助,将不胜感激。
答案 0 :(得分:2)
你已经完成了一半,除了你必须用变量名改变你的值:
array[0] = val1;
array[1] = val2;
array[2] = val3;
array[3] = val4;
如果您将val
变量作为数组,则可以使用memcpy或for循环来执行此操作。
示例:
double val[] = {24.00, 71.3, 9.30, 45.3};
double array[4];
memcpy(array, val, 4 * sizeof(double));
此外,这是不的方式,因为你覆盖你以前写的东西:
double array[5];
for (i=0; i<5; i++) {
array[i] = val1;
array[i] = val2;
array[i] = val3;
array[i] = val4;
}
数组的所有元素都是val4
答案 1 :(得分:2)
使用循环或分配每个元素,但不要混合它们。 如果值包含在几个变量中:
double array[4];
array[0] = val1
array[1] = val2
array[2] = val3
array[3] = val4
如果你有另一个阵列:
double array[4];
double val[] = {24.00, 71.3, 9.30, 45.3};
for (i=0; i<4; i++) {
array[i] = val[i]
}
答案 2 :(得分:2)
您的示例代码最终将在每个元素中使用val4,因为括号中的代码每次迭代运行一次,val4是每次迭代的最终语句。离散变量中的变量使得在循环内部执行您所要求的操作变得相当困难。我担心你能做的最好的就是在演示时手动分配它们。您可以使用预处理器宏来实现这一点,但这将取决于编译器并且非常难看。