Взаимосвязь строк и указателей.
Мы с Вами уже обсуждали тему указателей в одном из уроков, и Вы должны помнить, как тесно они связаны с массивами. Поэтому сегодня мы так же не сможем обойти указатели стороной. В программе доступ к строке осуществляется с помощью указателя на символ. Если описать переменную message как
то в результате выполнения оператора
message станет указателем на строку. Обратите внимания, что оператор cin нельзя будет применять к такому указателю.
Использование указателей часто применяется при работе с массивом строк. В этом случае к каждой строке можно обратиться с помощью указателя на его первый символ. Это удобно тем, что для перестановки двух строк, расположенных в неправильном порядке, фактически достаточно переставить указатели в массиве указателей, а не сами строки. Рассматривается функция month_name(), которая возвращает указатель на строку, содержащий имя n-го месяца. Это типичная задача для использования строкового массива. Функция month_name() содержит локальный массив строк и при обращении к ней возвращает указатель на нужную строку. В описании массива указателей на символы name[] инициализатором является просто список строк. Символы i-й строки помещаются в определенное место памяти, а указатель на ее начало хранится в элементе name[i]. Поскольку размер массива name не указан, компилятор сам подсчитывает количество инициализаторов и соответственно устанавливает правильное число.
Результат работы программы:
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|