Array M. УЭИТ - Язык Си - руководство для начинающих

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

Язык Си - руководство для начинающих: краткое содержание, описание и аннотация

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

M. УЭИТ   С. ПРАТА    Д. МАРТИН
Язык Си — руководство для начинающих

Язык Си - руководство для начинающих — читать онлайн бесплатно полную книгу (весь текст) целиком

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

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

Интервал:

Закладка:

Сделать

Необходимо заметить также, что строка "х"не то же самое, что символ 'x'. Первое различие: 'х'- объект одного из основных типов (Char), в то время как "х"- объект производного типа (массива элементов типа char). Второе различие: "х"на самом де ле состоит из двух символов - символа 'x'и нуль-символа.

РИС43 Символ х и строка х Длина строки функция strlen В - фото 22

РИС.4.3. Символ 'х' и строка "х"

Длина строки - функция strlen( )

В предыдущей главе мы практически без объяснений использовали операцию sizeof, которая дает нам размер объектов в байтах Функция strlen( )позволяет определять длину строки числом символов. Поскольку для размещения одного символа в памяти отводится 1 байт, можно было бы предположить, что в результате применения любой из этих двух операций к одной строке будет получен одинаковый результат. Оказывается, это не так. Давайте немного изменим нашу предыдущую программу (добавим к ней несколько строк), и тогда мы поймем, в чем дело.

/*похвала 2*/

#define PRAISE " Вот это да, какое великолепное имя!"

main( )

{

char name [50];

printf(" Как вас зовут?\n");

scanf(" %s", name);

printf(" Привет, %s. %s\n" , name, PRAISE);

printf(" Ваше имя состоит из %d букв и занимает %d ячеек памяти. \n",

strlen (name), sizeof name);

printf(" Хвалебная фраза состоит из %d букв", strlen (PRAISE));

printf(" и занимает %d ячеек памяти. \n", sizeof PRAISE);

}

Заметим, что случайно мы воспользовались двумя методами для обработки длинных операторов printf(). В первом случае мы, записав один оператор печати в двух строках программы. Мы сделали это, поскольку разрешается разбивать строку между аргументами, но не посередине строки. В другом случае использовались два оператора printf()для печати одной строки; мы указали символ "новая строка" ( \n) только во втором из них. Представленный ниже результат работы данной программы поможет понять подобную ситуацию:

Как вас зовут ?

Перки

Привет, Перки. Вот это да, какое великолепное имя!

Ваше имя состоит из 5 букв и занимает 50 ячеек памяти.

Хвалебная фраза состоит из 35 букв и занимает 36 ячеек памяти.

Давайте посмотрим, в чем дело. Массив nameзанимает 50 ячеек памяти, и именно об этом сообщает операция sizeof. Но для хранения имени Перкитребуются только первые пять ячеек, и как раз об этом нас информирует функция strlen( ). В шестой ячейке массива nameсодержится нуль-символ, и его появление служит сигналом для функции strlen( )прекратить подсчет символов

РИС44 Распознавание функцией strlen конца строки При переходе к обработке - фото 23

РИС.4.4. Распознавание функцией strlen( )конца строки

При переходе к обработке константы PRAISEобнаруживается, что функция strlen( )опять дает нам точное число символов (включая пробелы и знаки пунктуации) в строке. Результат операции sizeofоказывается на единицу большим, поскольку при этом учитывается и "невидимый" нуль-символ, помещенный в конец строки. Мы не указываем компилятору, какой объем памяти он должен отвести для размещения всей фразы, он сам подсчитывает число символов между кавычками.

Еще одно замечание в предыдущей главе была использована операция sizeofсо скобками, а в этой - без них. Решение, использовать ли скобки или нет, зависит от того, что вы хотите знать объем памяти, отводимый под элементы конкретного типа, или объем памяти, занимаемый определенным объектом В первом случае вы писали бы sizeof(char)или sizeof(float), а во втором - sizeof nameили sizeof 6.28.

КОНСТАНТЫ И ПРЕПРОЦЕССОР ЯЗЫКА Си

Иногда возникает необходимость использовать в программах константы. Например, оператор, позволяющий определять длину окружности, можно было бы записать в следующем виде:

circ = 3.14 * diameter;

Приведенная здесь константа 3. 14- известное число Пи. Чтобы ввести ту или иную константу в программу, нужно указать ее фактическое значение, как было сделано выше. Однако существуют веские причины использовать вместо этого "символические константы", например, мы могли бы применять оператор

circ = pi * diameter;

а позже компилятор подставил бы в него фактическое значение константы.

В чем достоинства такого метода?

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

Интервал:

Закладка:

Сделать

Похожие книги на «Язык Си - руководство для начинающих»

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


Отзывы о книге «Язык Си - руководство для начинающих»

Обсуждение, отзывы о книге «Язык Си - руководство для начинающих» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x