Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_ раб_С++.doc
Скачиваний:
4
Добавлен:
07.05.2019
Размер:
600.58 Кб
Скачать

4.2. Строки

Строки представляют собой особый массив символов, заканчивающийся символом с кодом 0. Такой символ имеет представление ’\0’. Инициализацию массива символов можно выполнить путем использования строкового литерала. char stroka[ ] = "привет"; Инициализируется массив символов из 7 элементов, последним элементом (седьмым) будет символ ’\0’, которым завершаются все строковые литералы. Можно использовать традиционную запись, например:

char stroka[ ] = {’п’,’р’,’и’,’в’,’е’,’т’,’\0’};

В том случае, если задается размер массива, а строковый литерал длиннее, чем размер массива, то лишние символы отбрасываются.

Следующее объявление инициализирует переменную stroka как массив, состоящий из семи элементов:

char stroka[5] = "привет";

В переменную stroka попадают первые пять элементов литерала, а символы ’Т’ и ’\0’отбрасываются. Если строка короче, чем размер массива, то оставшиеся элементы массива заполняются символами с кодом 0.

4.3. Понятие функции

Функция – это независимая совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Программы на С++ состоят по крайней мере из одной функции main, но могут содержать и больше функций. Различают полное и неполное объявление функции. Полное объявление, или определение, состоит из заголовка, в который входит тип возвращаемого значения, имя, формальные параметры, и тела, заключаемого в фигурные скобки. После закрывающейся фигурной скобки точка с запятой не ставится. При неполном объявлении используется заголовок, после которого стоит точка с запятой. В программе может быть только одно полное объявление и сколько угодно неполных. Последние, как правило, помещаются перед вызовом функции в программе, если определение расположено ниже по тексту, или в другом файле с исходным кодом. При использовании большого количества функций неполные объявления помещают в т.н. “заголовочные“ файлы, которые включаются в начало текста программой директивой препроцессора include. Вызов функции передает управление из вызывающей функции к вызванной. Фактические аргументы, если они есть, передаются по значению в вызванную функцию. При выполнении оператора return в вызванной функции управление и, возможно, возвращаемое значение передаются в вызывающую функцию.

4.3.1. Определение функции

Общий вид функции выглядит следующим образом.

тип_возвращаемого_значения имя_функции(список_параметров)

{

тело функции

}

Тип_возвращаемого_значения определяет тип переменной, которую возвращает функция.

- спецификатор класса памяти – задает класс памяти функции, который может быть или static или extern;

- спецификатор типа и декларатор определяют тип возвращаемого значения и имя функции;

- список параметров - это список (возможно пустой) формальных параметров, которые используются функцией;

- объявления параметров задают типы формальных параметров;

- тело функции - это составной оператор, содержащий объявления локальных переменных и операторы.

4.3.2. Класс памяти

Спецификатор класса памяти в определении функции определяет функцию как static или extern. Функция с классом памяти static видима только в том исходном файле, в котором она определена. Все другие функции с классом памяти extern, заданным явно или неявно, видимы во всех исходных файлах, которые образуют программу. Если спецификатор класса памяти опускается в определении функции, то подразумевается класс памяти extern.