Язык Си | страница 39
Ну, а теперь спросим, что такое массив? Массив можно пред ставить себе как совокупность нескольких ячеек памяти, объединен ных в одну строку Если вы предпочитаете более формальные и строгие определения, то массив - это упорядоченная последова тельность элементов данных одного типа В нашем примере мы создали массив из 40 ячеек памяти, в каждую из которых можно по местить один элемент типа char. Мы осуществили это с помощью оператора описания
char name [40];
Квадратные скобки указывают, что переменная name - массив, 40 - число его элементов, a char задает тип каждого элемента. (В комментариях к программе было отмечено, что при желании вы можете воспользоваться более сложным оператором описания):
static char name [40],
Ввиду некоторой специфики, связанной с реализацией функции scanf( ) в нашей системе, мы вынуждены использовать эту вторую
РИС.4.2. Описание имени массива типа char
форму, но весьма вероятно, что вы сможете выбрать любую из них. Если обнаружится, что при работе с первой формой оператора описания у вас возникнут трудности при решении наших примеров, попробуйте воспользоваться второй. В действительности вторая форма должна работать в любой системе, но мы не хотим применить тип static до тех пор, пока не рассмотрим в гл. 10 понятие классов памяти).
На первый взгляд все это выглядит довольно сложным: вы должны создать массив, расположить символы в виде строки и не забыть добавить в конце \0. К счастью, о большинстве деталей компилятор может "позаботиться" сам.
Попробуйте выполнить приведенную ниже программу, чтобы посмотреть, как просто все происходит на практике:
/* похвала 1*/
#define PRAISE " Вот эта да, какое великолепное имя"
main( )
{
char name [50];
printf(" Как вас зовут? \n" );
scanf(" %s", name);
printf(" Привет, %s %s\n" , name, PRAISE);
}
Символ %s служит указанием функции printf( ) напечатать строку. Результат выполнения программы похвала 1 может выглядeть, например, так:
Как вас зовут ?
Элмо Бланк Привет, Элмо, Вот эта да, какое великолепное имя !