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

carrayのa th値が割り当てられb[]ます。

aが 1 に等しい場合は、次のcようになります-0.592

于 2012-10-24T14:05:38.893 に答える
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 に答える
2

a に 0 が含まれている場合はc = b[a]、配列 b を変更せずに、配列 b[] の最初の要素が a に割り当てられていることを意味します。

于 2012-10-24T14:05:58.400 に答える
1

C の学習でいくつかのステップを踏む必要があります。

b[a] は、配列 b からインデックス a を持つ要素のコンテンツを取得することを意味します

于 2012-10-24T14:06:39.343 に答える
1

double配列の a 番目の要素bが割り当てられcます (最初の要素のインデックスは 0 です)。

于 2012-10-24T14:05:38.347 に答える