русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Инициализация массивов

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

Инициализация – это объединение определения объекта с одновременным присваиванием ему конкретного значения. Она позволяет изменить формат определения массива. Например, можно явно не указывать количество элементов одномерного массива, а только перечислить их начальные значения в списке инициализации:

double seq [] = {1.0, 2.1, 3.2, 4.3, 5.0};

В данном примере будет определен одномерный массив из пяти элементов, причем

seq[0]=1.0 seq[1]=2.1 seq[2]=3.2 seq[3]=4.3 seq[4]=5.0

Если в определении массива явно задан его размер, то количество начальных значений не может быть больше количества элементов в массиве (в таком случае компилятор выдаст ошибку типа «too many initializers»).

В случае, когда количество начальных значений меньше заданного размера массива – будут присвоены начальные значения только группе первых элементов массива (элементам с меньшим значением индекса):

int seq [4] = {1, 2};

В данном примере будут определены только элементы seq[0]=1 и seq[1]=2, в то время как элементы seq[2] и seq[3]останутся неопределенными.

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

int matr[3][2] = {{2,3}, {4,5}, {6,7}};

Эта запись эквивалентна последовательности операторов присваивания:

matr[0][0]=2 matr[0][1]=3 matr[1][0]=4 matr[1][1]=5 matr[2][0]=6 matr[2][1]=7

Тот же самый результат можно получить с одним списком инициализации в форме:

int matr[3][2] = {2, 3, 4, 5, 6, 7};

Как и для одномерных массивов могут быть проинициализированы не все значения многомерного массива:

double M[4][6] = { {1.0}, {2.2}, {44.2}, {8.0} };

- начальные значения получат элементы только первого столбца матрицы M.

В многомерных массивах требуется некоторое время на вычисление каждого индекса. Поэтому доступ к элементу в многомерных массивах происходит медленнее, чем доступ в одномерных массивах. Поэтому для многомерных массивов память чаще всего выделяется динамически.

В С отсутствует проверка границ массивов. Можно легко выйти за конец массива и записать значение в какую-либо область, не относящуюся к массиву. Вся работа по проверке границ массива возлагается на программиста.

Массивы символов. Массивы символов, содержащие строки, допускают удобную инициализацию в виде:

char <имя_массива> [размер] = “строка”;

char str [6] = “hello”;

Просмотров: 718


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.