0

私はそれを学ぼうとしているときにいくつかの C++ コードを見ていましたが、奇妙なことに遭遇しました。何が起こっているのかわかりません。

int A[100000];

int main()
{
    int N;
    scanf("%d", &N);

    for (int i = 0; i < N; i++)
    {
        scanf("%d", A + i);
    }

scanf("%d", A + i);ここで配列に何が起こっているのかという行を除いて、起こっていることはすべて理解していますか? コンソールから読み取った整数を配列に追加するだけですか?私は Java をよく理解しています。

誰かがそれをJavaに翻訳できれば。何が起こっているのかを理解できる可能性が最も高いでしょう。

4

2 に答える 2

5

A + iと同じです。&A[i]つまり、A[i]と同じ*(A + i)です。i番目A + iの要素のアドレスも同様です(カウントはゼロから始まります)。

于 2013-05-09T23:28:27.077 に答える
1

残念ながら、これは Java にうまく変換できません。これはポインタ演算の例であり、ポインタと配列が他のものと同じように数値であることを理解している場合にのみ意味があります。「を超えるメモリアドレスユニットA + i」の略です。(この場合、単位はs で、これは 4 バイトです。したがって、「メモリ アドレスバイトを超える」と書くこともできます。)iAinti * 4 A

于 2013-05-09T23:30:14.820 に答える