int[] a = new int[5] {2, 6, 8, 12, 22};
int[] b = a;
int s = 0;
foreach( int x in a ) s += x;
b[0] = s;
a[0] = s / 3;
Console.WriteLine(a[0] + b[0]);
Ссылочная магия.
Код:
Оператор присвоения ссылочного типа (массива) копирует только адрес массива.
у вас получается два имени одного и того же участка памяти.
То, что находится в этом участке памяти - суть одно и то же, а это целые числа в вашем случае.
Посмотрите еще проще - оператор new один?
Значит и массив один.
А ссылок на него может быть сколько угодно.
a[0] = s / 3;
меняет и b[0]
Цитата: D129
Никакой магии.
Оператор присвоения ссылочного типа (массива) копирует только адрес массива.
у вас получается два имени одного и того же участка памяти.
То, что находится в этом участке памяти - суть одно и то же, а это целые числа в вашем случае.
Посмотрите еще проще - оператор new один?
Значит и массив один.
А ссылок на него может быть сколько угодно.
a[0] = s / 3;
меняет и b[0]
Оператор присвоения ссылочного типа (массива) копирует только адрес массива.
у вас получается два имени одного и того же участка памяти.
То, что находится в этом участке памяти - суть одно и то же, а это целые числа в вашем случае.
Посмотрите еще проще - оператор new один?
Значит и массив один.
А ссылок на него может быть сколько угодно.
a[0] = s / 3;
меняет и b[0]
Гм. Думал, что ссылки появляются только в многомерных массивах,спасибо.
Забавно, но верного ответа на вопрос, что выведется на экран, в тесте не было - All Hail Российское образование!