2


0

while(i <a_rows * a_cols){out [i] = *(a_mat i); //この行}

マークされた行は何をするのですか?

2 Answer


12


それは `a_mat i`が指しているものすべての値を取得します。 代わりに `a_mat [i]`と書くこともできます。


3


Cでは、 `x [i]`は `*(xi)`と同じ表現です。なぜなら、ポインタに整数を追加することは、整数をポイントされたオブジェクトのサイズでスケーリングすることによって行われ、 。

これは、その非対称な外観にもかかわらず、Cのインデックス演算子 `[]`が可換であることを意味します。

これの伝統的なデモンストレーションは次のようなものです。

main() {
  int x[] = { 1, 2, 3, 4 };

        printf("%d\n", x[2]);
        printf("%d\n", 2[x]);
}

両方の行は同等で、同じものを表示します。