| netlib.narod.ru | < Назад | Оглавление | Далее > |
Напишем функцию month_name(n), которая возвращает указатель на строку символов, содержащую название n-го месяца. Эта функция идеальна для демонстрации использования статического массива. Функция month_name имеет в своем личном распоряжении массив строк, указатель на одну из которых она и возвращает. Ниже мы покажем, как инициализируется этот массив названий месяцев.
Синтаксис задания начальных значений аналогичен синтаксису предыдущих инициализаций:
/* month_name: возвращает имя n-го месяца */
char *month_name(int n)
{
static char *name[] = {
"Неверный месяц",
"Январь", "Февраль", "Март",
"Апрель", "Май", "Июнь",
"Июль", "Август", "Сентябрь",
"Октябрь", "Ноябрь", "Декабрь"
};
return (n < 1 || n > 12) ? name[0] : name[n];
}
Объявление name массивом указателей на символы выглядит так же, как и объявление lineptr в программе сортировки строк. Инициализатором служит список строк, каждой из которых соответствует определенное место в массиве. Символы i-й строки где-то размещены, и указатель на них запоминается в name[i]. Так как размер массива name не указан, компилятор вычислит его по количеству значений в списке инициализации.
| netlib.narod.ru | < Назад | Оглавление | Далее > |