Одномерные массивы

Одномерные массивы используются в программах чаще всего. Варианты описа­ния массива:

тип[] имя;

тип[] имя = new тип [ размерность ];

тип[] имя = { список_инициализаторов };

тип[] имя = new тип [] { список_инициализаторов };

тип[] имя = new тип [ размерность ] { список_инициализаторов };

Примеры описаний (один пример для каждого варианта описания):

int[] a; // 1 элементов нет

int[] b = new int[4]; // 2 элементы равны 0

int[] с = { 61, 2, 5, -9 }; // 3 new подразумевается

int[] d = new int[] { 61, 2, 5, -9 }: // 4 размерность вычисляется

int[] e = new int[4] { 61, 2, 5, -9 }; // 5 избыточное описание

Здесь описано пять массивов. Отличие первого оператора от остальных состоит в том, что в нем, фактически, описана только ссылка на массив, а память под эле­менты массива не выделена. Если список инициализации не задан, размерность может быть не только константой, но и выражением типа, приводимого к целому.

В более общем виде: можно преобразовать массив, состоящий из элементов некоторого класса а, в массив, состоящий из элементов типа, являющегося базовым для a.

В каждом из остальных массивов по четыре элемента целого типа. Как видно из операторов 3-5, массив при описании можно инициализировать. Если при этом не задана размерность (оператор 3), количество элементов вычисляется по количе­ству инициализирующих значений. Для полей объектов и локальных переменных можно опускать операцию new, она будет выполнена по умолчанию (оператор 2). Если присутствует и размерность, и список инициализаторов, размерность долж­на быть константой (оператор 4).

ПРИМЕЧАНИЕ

Если количество инициализирующих значений не совпадает с размерностью, воз­никает ошибка компиляции.

В качестве примера рассмотрим программу, которая определяет сумму и количе­ство отрицательных элементов, а также максимальный элемент массива, состоя­щего из 6 целочисленных элементов (листинг 6.1).

Листинг 6.1. Работа с одномерным массивом

using System;

namespace ConsoleApplication1

{

class Class1

{

static void Main()

{

const int n = 6;

int[] a = new int[n] { 3, 12, 5, -9, 8, -4 };

Console.WriteLine("Исходный массив:");

for (int i = 0; i < n; ++i)

Console.Write("\t" + a[i]);

Console.WriteLine();

long sum = 0; // сумма отрицательных элементов

int num = 0; // количество отрицательных элементов

for (int i = 0; i < n; ++i)

if (a[i] < 0)

{

um += a[i]; ++num;

}

Console.WriteLine("Сумма отрицательных = " + sum);

Console.WriteLine("Кол-во отрицательных = " + num);

int max = a[0]; // максимальный элемент

for (int i = 1; i < n; ++i)

if (a[i] > max)

max = a[i];

Console.WriteLine("Максимальный элемент = " + max);

}

}

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: