Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Массивы массивов

Читайте также:
  1. А) Ссылочные переменные б) Параллельные массивы
  2. Б) Параллельные массивы
  3. Вложенные циклы. структурированные типы данных - массивы. объявление и использование массивов в программе. одномерные и многомерные массивы.
  4. Вопрос 23. Сложные типы данных. Массивы. Операторы ввода-вывода.
  5. ЛАБОРАТОРНАЯ РАБОТА 7. МОДИФИКАЦИЯ ДВУМЕРНЫХ МАССИВОВ
  6. Массивы в C (часть 2): многомерные массивы
  7. Массивы в языках Pascal и Basic
  8. Массивы и их организация. Типы данных в массиве. Диапазон индекса. Одномерные массивы примеры.
  9. Массивы переменных размеров. Функции использования динамической памяти.

 

Массив массивов – это массив, элементы которого сами являются массивами. Элементы массива массивов могут иметь различные размеры и измерения. Массивы массивов иногда также называются "невыровненными массивами". В следующих примерах показано, как выполняется объявление, инициализация и доступ к массивам массивов.

Ниже показано объявление одномерного массива, включающего три элемента, каждый из которых является одномерным массивом целых чисел.

C#

int[][] jaggedArray = new int[3][];

 

Перед использованием jaggedArray его элементы нужно инициализировать. Сделать это можно следующим образом.

C#

jaggedArray[0] = new int[5];

jaggedArray[1] = new int[4];

jaggedArray[2] = new int[2];

 

Каждый элемент представляет собой одномерный массив целых чисел. Первый элемент массива состоит из пяти целях чисел, второй – из четырех и третий – из двух.

Для заполнения элементов массива значениями можно также использовать инициализаторы, при этом размер массива знать не требуется. Пример.

C#

jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };

jaggedArray[1] = new int[] { 0, 2, 4, 6 };

jaggedArray[2] = new int[] { 11, 22 };

 

Также массив можно инициализировать путем объявления.

C#

int[][] jaggedArray2 = new int[][]

{

new int[] {1,3,5,7,9},

new int[] {0,2,4,6},

new int[] {11,22}

};

 

Также можно использовать сокращенную форму. Обратите внимание, что при инициализации элементов оператор new опускать нельзя, так как инициализации по умолчанию для этих элементов не существует.

C#

int[][] jaggedArray3 =

{

new int[] {1,3,5,7,9},

new int[] {0,2,4,6},

new int[] {11,22}

};

Невыровненный массив является массивом массивов, и поэтому его элементы являются ссылочными типами и инициализируются значением null.

Доступ к отдельным элементам массива выполняется следующим образом.

C#

// Assign 77 to the second element ([1]) of the first array ([0]):

jaggedArray3[0][1] = 77;

 

// Assign 88 to the second element ([1]) of the third array ([2]):

jaggedArray3[2][1] = 88;

 

Массивы массивов можно смешивать с многомерными массивами. Ниже показано объявление и инициализация одномерного массива массивов, состоящего из двумерных элементов различного размера.

C#

int[][,] jaggedArray4 = new int[3][,]

{

new int[,] { {1,3}, {5,7} },

new int[,] { {0,2}, {4,6}, {8,10} },

new int[,] { {11,22}, {99,88}, {0,9} }

};

 

Доступ к отдельным элементам выполняется как показано в примере ниже, где отображено значение элемента [1,0] первого массива (значение 5).

C#

System.Console.Write("{0}", jaggedArray4[0][1, 0]);

 

Метод Length возвращает число массивов, содержащихся в массиве массивов. Например, если объявить предыдущий массив, мы получим следующее.

C#

System.Console.WriteLine(jaggedArray4.Length);

 

возвращает значение 3.

 

Строки

 

Тип string представляет последовательность из нуля или более символов в кодировке Юникод. Тип string — это псевдоним для типа String платформы.NET Framework.

Несмотря на то, что тип string является ссылочным типом, операторы равенства (== и !=) определены для сравнения значений объектов типа string, а не ссылок. Это упрощает проверку равенства строк. Например:

C#

string a = "hello";

string b = "h";

// Append to contents of 'b'

b += "ello";

Console.WriteLine(a == b);

Console.WriteLine((object)a == (object)b);

В этом примере отображается "True", а затем "False", поскольку содержимое строк одинаково, но a и b не ссылаются на один и тот же экземпляр строки.

Оператор + служит для объединения строк.

C#

string a = "good " + "morning";

В данном примере создается строковый объект, содержащий текст "good morning".

Строки являются неизменяемыми: содержимое строкового объекта невозможно изменить после создания объекта, хотя из-за синтаксиса изменения кажутся возможными. Например, при написании этого кода компилятор на самом деле создает новый строковый объект для новой последовательности знаков, и этот новый объект получает значение "b". Затем строку "h" можно применять для сборки мусора.

C#

string b = "h";

b += "ello";

Оператор [] служит для доступа только для чтения к отдельным знакам объекта string.

C#

string str = "test";

char x = str[2]; // x = 's';

Строковые литералы имеют тип string и могут быть написаны в двух формах: в кавычках и в кавычках с @. Строковые литералы в кавычках заключены в двойные кавычки (").

C#

"good morning" // a string literal

Строковые литералы могут содержать любые символьные литералы. Escape-последовательности также поддерживаются. В следующем примере используется escape-последовательность \\ для обратной косой черты, \u0066 для буквы "f" и \n для перехода на новую строку.

string a = "\\\u0066\n";

Console.WriteLine(a);

 

Примечание

Escape-код \u dddd (где dddd — четырехзначное число) представляет знак Юникода U+ dddd. Также распознаются восьмизначные escape-коды Юникода: \Udddddddd.

 

Литералы из точных строк начинаются со знака @ и заключены в двойные кавычки. Например:

C#

@"good morning" // a string literal

Преимущество точных строк заключается в том, что escape-последовательности не обрабатывается, благодаря чему можно удобно написать, например, полное имя и путь файла:

C#

@"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt"

Чтобы включить знак двойной кавычки в строку в кавычках с @, следует использовать знак кавычек дважды:

C#

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

Знак @ также можно применять для использования указанных идентификаторов (/reference), являющихся ключевыми словами C#.

 




Дата добавления: 2015-02-16; просмотров: 23 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав