Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка2(4-8).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
166.4 Кб
Скачать

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

В языке С++ массивы при объявлении можно инициализировать. Общая форма инициализации массива аналогична инициализации переменной:

тип имя_массива[размер1]...[размер№] = {список_значений};

Список_значений представляет собой список констант, разделенных запятыми. Типы констант должны быть совместимыми с типом массива. Первая константа присваивается первому элементу массива, вторая — второму и так далее. После закрывающейся фигурной скобки точка с запятой обязательна.

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

char e1[12] = "Ошибка чтения\n";

char e2[13] = "Ошибка записи\n";

char e3[18] = "Нельзя открыть файл\n";

Для задания размера массива пришлось бы вручную подсчитывать количество символов в каждом сообщении. Однако в языке С++ есть конструкция, благодаря которой компилятор автоматически определяет необходимую длину строки. Если в операторе инициализации массива не указан размер массива, компилятор создает массив такого размера, что в нем умещаются все инициализирующие элементы. Таким образом создается безразмерный массив.

2.7. Массивы переменной длины

Стандарт С++ позволяет в объявлении размера массива использовать любые выражения, в том числе такие, значение которых становится известным только во время выполнения. Объявленный таким образом массив называется массивом переменной длины. Однако переменную длину могут иметь только локальные массивы (т.е. видимые в блоке или в прототипе). Приведем пример массива переменной длины:

void f(int dim)

{

char str[dim]; /* символьный массив переменной длины */

/* ... */

}

Здесь размер массива str определяется значением переменной dim, которая передается в функцию f() как параметр. Таким образом, при каждом вызове f() создается массив str разной длины.

Массивы переменной длины добавлены в С++ главным образом для поддержки численных методов обработки данных. В программировании это средство распространено достаточно широко. Однако следует помнить, что стандарт С89 и некоторые компиляторы C++ не поддерживает массивы переменной длины.

2.8. Пример

1. Подключаем библиотеки

#include <stdio.h>

2. Объявляем функцию main()

int main(void)

{

3. Объявляем две переменные t и i и маччив размером 3х4 целого типа

int t, i, num[3][4];

4. Запускаем два цикла. t изменяется от 0 до 2, I от 0 до 3

for(t=0; t<3; ++t)

for(i=0; i<4; ++i)

5. Присваиваем текущему элементу массива значение равное (t*4)+i+1

num[t][i] = (t*4)+i+1;

6. Выводим построчно содержание массива

for(t=0; t<3; ++t) {

for(i=0; i<4; ++i)

printf("%3d ", num[t][i]);

printf("\n");

}

return 0;

}

3. Лабораторное задание и методические указания по его выполнению

Изучить массивы и строки Borland C++, используя теоретические сведения данного методического пособия, а также на практике реализовать полученные знания в виде программы.

Отчет должен содержать:

  • Наименование и цель работы.

  • Краткие теоретические сведения.

  • Распечатку программы и контрольный пример работы программы.