Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Здесь есть возможность читать онлайн «Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 0101, Издательство: Вильямс, Жанр: Старинная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования C. Лекции и упражнения (6-е изд.) 2015», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

На рис. 14.2 приведена иллюстрация, которая способствует лучшему пониманию сказанного. Само имя library не является именем структуры; оно представляет собой имя массива, элементы которого — структуры типа struct book.

Рис 142 Маете структур Идентификация членов в массиве структур Для - фото 431

Рис. 14.2. Маете структур

Идентификация членов в массиве структур

Для идентификации членов в массиве структур применяются те же самые правила, что и в случае индивидуальных структур: за именем структуры должна следовать операция точки, а затем имя члена.

Структуры и другие формы данных 575

Например:

library[0].value /*значение value, ассоциированное с первым элементом массива*/ library[4].title /‘значение title, ассоциированное с пятым элементом массива*/

Обратите внимание, что индекс массива указан после library, а не после имени члена:

library.value[2] // НЕПРАВИЛЬНО

library[2].value // ПРАВИЛЬНО

Причина использования конструкции library [2] .value состоит в том, что library [2] является именем переменной типа структуры, точно так же, как library [1] — это имя еще одной переменной типа структуры.

Кстати, что представляет следующая конструкция?

library[2].title[4]

Это пятый символ в названии книги (часть title [4]), которую описывает третья структура (часть library [2]). В приведенном примере это будет символ В. Данный пример показывает, что индексы, находящиеся справа от операции точки, применяются к индивидуальным членам, но индексы, расположенные слева от операции точки, относятся к массиву структур.

В итоге мы допустимы такие операторы:

library // массив структур типа book

library[2] // элемент массива, т.е. структура book

library[2].title // символьный массив (член title элемента library [2])

library[2].ti11е[4] // символ в массиве члена title

Давайте завершим рассмотрение программы.

Анализ программы

Основное отличие этой программы от первой заключается в том, что в ней включен цикл для чтения множества записей. Цикл начинается со следующего условия

while:

while (count < MAXBKS && s_gets(library[count].title, MAXTITL) != NULL && library[count].title[0] != '\n')

Выражение s_gets (library [count] .title, MAXTITL) читает строку для названия книги; это выражение принимает значение NULL, если функция s_gets() пытается прочитать символ, следующий за концом файла. Выражение library [count] . title [0] ! = ‘\0' проверяет, не является ли первый символ строки нулевым (т.е. не пустая ли строка). Если пользователь нажимает клавишу в начале строки, передается пустая строка и цикл завершается. В программе также предусмотрена проверка, которая не позволяет вводить больше записей для книг, чем допускает размер массива.

Далее в программе идут следующие строки:

while (getchar() != ‘\n')

continue; /* очистить входную строку */

Как уже говорилось в предшествующих главах, этот код компенсирует игнорирование функцией scanf() пробелов и символов новой строки. Когда вы отвечаете на запрос цены книги, вы набираете что-нибудь такое:

12.50[enter]

576 глава 14

Эго приводит к передаче следующей последовательности символов:

12.50\n

Функция scanf() получает символы 1,2, ., 5 и 0, но оставляет символ \n в ожидании, что им займется следующий оператор чтения. Если бы код очистки входной строки отсутствовал, то следующий оператор чтения, s_gets (library [count] . title, MAXTITL), прочитал бы оставленный символ новой строки и посчитал бы, что введена пустая строка, а это является сигналом к прекращению ввода. Вставленный нами код читает символы до тех пор, пока не обнаружит символ новой строки и затем избавится от него. Он ничего не делает с этими символами, а лишь удаляет их из входной очереди. Это позволяет функции s_gets() корректно начать чтение следующих входных данных.

Теперь возвратимся к исследованию структур.

Вложенные структуры

Иногда удобно, чтобы одна структура содержала другую структуру, которая называется вложенной. Например, Шейла Пироски создает структуру с информацией о своих друзьях. Одним из членов структуры является, естественно, имя друга. Однако имя само может быть представлено с помощью структуры, с отдельными записями для имени и фамилии. В листинге 14.3 показан сжатый пример работы Шейлы.

Листинг 14.3. Программа friend.с

Структуры и другие формы данных 577 Ниже представлен вывод полученный из - фото 432

Структуры и другие формы данных 577

Ниже представлен вывод полученный из этой программы Дорогой Билли Благодарю - фото 433

Ниже представлен вывод, полученный из этой программы:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Представляем Вашему вниманию похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Обсуждение, отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x