1

私はこのようなメインプログラムに配列を持っています:(私はasp.netでプログラミングするためにC#を使用しています)

double[][] example= new double[][];

この例では、10*2の配列を想像してみましょう。

したがって、次に行うことは、この配列を次のような別の関数に送信することです。

usedarray(example);
public double[][] usedarray(double[][]examplearray)
{

}

各スペースのdouble配列には64ビットの浮動小数点数しかないことを知っているので、この例で使用されるメモリの場合、配列には1280ビットが含まれますが、関数に送信されると、同じメモリスペースが使用されますか?または、完全に新しいメモリスペースのセットを使用しますか?

4

1 に答える 1

2

配列は参照型であり、値型ではありません。つまり、変数にexamplearrayは実際には1280ビットのデータは含まれず、他の場所に格納されている実際のデータへの参照(ポインターとも呼ばれる)が含まれているだけです(この投稿では、 「他の場所」が実際にどこにあるかは問題ではありません)。その変数をメソッドに渡すことは、そこで行ったように、その参照(システムに応じて、32ビットまたは64ビット)をコピーするだけであり、基になる1280ビットのデータはコピーしません。

于 2012-10-25T18:28:18.987 に答える