1

我对 C 的经验很少,但被要求将 C 程序转换为 R。有一点让我感到不安:

我有一个需要 int 的函数

int a

在函数中我有一个数组:

double b[3] = {

       1.8293,
       -0.592,
       2.3330,
}

后来在我的功能中:

c = b[a];

有人能告诉我这条线在做什么吗?分配给 c 的是什么?它只是一个大小为 b 的数组,其中 b 的所有值都乘以 a 吗?

谢谢。

4

6 回答 6

3

c分配有数组的a 第 thb[]

如果a等于 1 那么c将等于-0.592

于 2012-10-24T14:05:38.893 回答
2

如果 a 包含 0 则c = b[a]表示将数组 b[] 的第一个元素分配给 a,而不更改数组 b

于 2012-10-24T14:05:58.400 回答
2

这里的变量 a 是数组的索引。例如,如果 a=0,则 b[a] 是第一个元素(在本例中为 1.8293)。

通常 b[a] 从数组中提取特定元素。

于 2012-10-24T14:07:16.287 回答
2

因此,这是您描述的功能的模型(我编造了您未提及的部分),我添加了评论//以解释发生了什么:

void foo(int a)
{
    // define an array of 3 doubles
    //b[0] = 1.8293
    //b[1] = -0.592
    //b[2] = 2.333

    double b[3] = { 1.8293, -0.592, 2.3330 };

    double c;     // Note c is a double, because we're going to assign 
                  // one of the values from b

    //we're going to use a to access array b, that means a has to be 0, 1, or 2
    if(a < 3)
       c = b[a]; 

    //Now c is set to one of those three values in b 
    //(depending on what value a has)

    return;
}
于 2012-10-24T14:28:12.333 回答
1

double数组的第 a 个元素b分配给c(第一个元素的索引为 0)。

于 2012-10-24T14:05:38.347 回答
1

您需要在 C 学习中迈出一步。

b[a] 表示您将从 b 数组中获取索引为 a 的元素的内容

于 2012-10-24T14:06:39.343 回答