Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otveti_k_programm.doc
Скачиваний:
0
Добавлен:
26.09.2019
Размер:
1.55 Mб
Скачать
  1. Классы памяти. Определение, время существования, область действия, инициализация.

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

Свойства

Классы, перечисленные выше пунктирной линии, описываются внутри функции.

Классы, перечисленные ниже этой линии, определяются вне функции.

Класс памяти Ключевое слово Продолжительность Область деиствия

Автоматический auto Временно Локальная

Статический static Постоянно Локальная

Внешняя extern Постоянно Глобальная

(все файлы)

Внешняя

статическая static Постоянно Глобальная

(один файл)

  1. Массивы. Объявление, инициализация, индексирование. Одномерные, двумерные массивы.

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

Стандартный вид объявления одномерного массива следующий:

тип имя_переменной[ размер ];

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

общее число байт = sizeof (базовый тип)*число элементов;

У всех массивах первый элемент имеет индекс [0].

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

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

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

Список значений – это разделенный запятыми список констант, совместимых по типу со спецификатором типа. Например:

int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Это означает, что i[0] получит значение 1, i[9] – 10.

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

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

При данной инициализации нулевой терминатор автоматически добавляет к концу строки. Например:

char str[6] = “hello”;

Это можно также записать:

char str[6] = {‘h’, ‘e’, ‘l’, ‘l’, ‘o’,’\0’};

В данном случае нулевой символ обязателен.

Индексация или доступ к элементам массива осуществляется оператором []. Следующий пример иллюстрирует использование этого оператора:

void f() { char hello[] = "Hello world!"; int index; String mess = hello; for ( index = 0; index < mess.length(); index++ ) { cout << index << "\'s element: " << hello[index] << endl; } }

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

Стандартный вид объявления одномерного массива следующий:

тип имя_переменной[ размер ];

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

общее число байт = sizeof (базовый тип)*число элементов;

У всех массивах первый элемент имеет индекс [0].

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]