Вход/Регистрация
Язык Си - руководство для начинающих
вернуться

Д. МАРТИН

Шрифт:

Тип данных char

Этот тип определяет целые числа без знака в диапазоне от 0 до 255. Обычно такое целое размещается в одном байте памяти. В машине используется некоторый код для перевода чисел в символы и обратно. В большинстве компьютеров это код ASCII, описанный в приложении в конце книги. Во многих компьютерах фирмы IBM (но не IBM PC) применяется другой код, называемый EBCDIC. На протяжении всей книги мы будем использовать код ASCII и, проведя различные примеры, будем ссылаться на него.

Описание символьных переменных

Для описания символьной переменной применяется ключевое слово char. Правила, касающиеся описания более чем одной переменной и инициализации переменных, остаются теми же, что и для других основных типов. Поэтому строки, приведенные ниже, являются допустимыми операторами.

char response;

char intable, latan;

char isma = ' S ';

Символьные константы

В языке Си символы заключаются в апострофы. Поэтому, когда мы присваиваем какое-то значение переменной broiled типа char, мы должны писать

broiled = ' Т '; /* ПРАВИЛЬНО */,

а не

broiled = Т; /* НЕПРАВИЛЬНО */

Если апострофы опущены, компилятор "считает", что мы используем переменную с именем Т, которую забыли описать.

В стандарте языка Си принято правило, согласно которому значениями переменной или константы типа char могут быть только одиночные символы. В соответствии с этим последовательность операторов, указанная ниже, является недопустимой, поскольку там делается попытка присвоить переменной bovine значение, состоящее из двух символов:

ehar bovine;

bovine = ' ox '; /*НЕПРАВИЛЬНО */

Если вы посмотрите на таблицу кода ASCII, то увидите, что некоторые из "символов" в ней не выводятся на печать. Например, при использовании в программе символа номер 7 терминал компьютера издает звуковой сигнал. Но как использовать символ, который невозможно набрать на клавиатуре? В языке Си для этого имеются два способа.

В первом способе используется сам код ASCII. Вы должны только указать номер символа вместе с предшествующим знаком "обратная косая черта". Мы уже делали это в нашей программе "золотой эквивалент". Вот эта строка

beep = ' \007 ';

Здесь имеются два важных момента, которые вы должны отчетливо представлять себе. Первый - это то, что последовательность знаков заключается в апострофы точно так же, как это делается с обычным символом. Второе - то, что номер символа должен быть записан в восьмеричном виде. При записи последовательности знаков мы можем случайно пропустить нули в первых позициях; в этом случае для представления кода "сигнал" мы могли бы использовать '\07' или даже '\7'. Но ни в коем случае не опускайте в записи последние нули! Последовательность символов '\020' можно записать в виде '\20', но не '\02'.

При использовании кода ASCII необходимо отметить различие между числами и символами, обозначающими числа. Например, символу "4" соответствует код ASCII, равный 52. Это символ "4" а не число 4.

РИС. 3. 4. Формы записи констант целых типов

Во втором способе представления "неудобных" знаков используются специальные последовательности символов. Они называются управляющими последовательностями и выглядят следующим образом:

 \n новая строка

\t табуляция

\b шаг назад

\r возврат каретки

\f подача бланка

\\ обратная косая черта (\)

\' апостроф (')

\" кавычки (")

При присваивании символьной переменной эти последовательно сти тоже должны быть заключены в апострофы. Например, мы могли бы написать оператор

nerf = ' \n ';

а затем вывести на печать переменную nerf; это приведет к продвижению на одну строку вперед на печатающем устройстве или на экране дисплея.

Первые пять управляющих последовательностей являются общепринятыми символами, предназначенными для управления работой печатающего устройства:

символ "новая строка" вызывает переход к новой строке;

символ "табуляция" сдвигает курсор или печатающую головку на некоторое фиксированное число позиций 5 или 8;

  • Читать дальше
  • 1
  • ...
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: