Символьный тип: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 2: Строка 2:


== Язык C ==
== Язык C ==
В языке Си размер типа равен одному байту.<ref name="Pod`ebelsky">''Подбельский В. В. Программирование на языке Си, стр. 23-25''</ref> В общем случае размер типа <code>char</code> на конкретной платформе регулируется значением константы <code>CHAR_BITS</code>, определённой в заголовочном файле [[limits.h]]. По умолчанию и на платформах [[x86]] она равна 8. <code>Char</code> может вмещать максимум один символ.
Большинство компиляторов языка Си устанавливают размер символьного типа char равен одному байту. В стандарте языка Си ограничение на размер этого типа данных указано следующим образом: "Объект, объявленный имеющим тип char, должен иметь достаточный для хранения базового набора символов выполнения размер." Базовый набор символов выполнения (basic execution
character set) включает в себя следующие символы: 52 латинские буквы от a до z верхнего и нижнего регистра, 10 цифр от нуля до девяти, следующие 29 символов '''!;"<#=%>&?'[()]*^+_{},-|.\/~:''', а также пробел, horizontal tab, vertical tab, form feed - всего 95. <ref name="ISOC">''ISO/IEC 9899:1999''</ref> Таким образом, нижняя граница размера для типа данных char равна 7 битам, но на практике разработчики компиляторов берут размер, равный одному байту. Размер типа <code>char</code> на конкретной платформе регулируется значением константы <code>CHAR_BITS</code>, определённой в заголовочном файле [[limits.h]]. По умолчанию и на платформах [[x86]] она равна 8. <code>Char</code> может вмещать максимум один символ.


Если <code>char</code> определён как <code>signed</code> (знаковый), то его диапазон значений составляет от −128 до 127 (может быть на единицу дальше в положительную сторону, в зависимости от реализации). Если он определён как <code>unsigned</code> (беззнаковый), то его значения могут составлять от 0 до 255. Значение, содержащееся в этом типе, можно всегда безопасно привести к значению типа [[int]]. В [[Си (язык программирования)|Си]] нет примитивных типов для работы со строками, поэтому для работы с ними используется [[Указатель (тип данных)|указатель]] <code>char *</code>.
Если <code>char</code> определён как <code>signed</code> (знаковый), то его диапазон значений составляет от −128 до 127 (может быть на единицу дальше в положительную сторону, в зависимости от реализации). Если он определён как <code>unsigned</code> (беззнаковый), то его значения могут составлять от 0 до 255. Значение, содержащееся в этом типе, можно всегда безопасно привести к значению типа [[int]]. В [[Си (язык программирования)|Си]] нет примитивных типов для работы со строками, поэтому для работы с ними используется [[Указатель (тип данных)|указатель]] <code>char *</code>.

Версия от 02:16, 22 мая 2014

Символьный тип (Сhar) — простой тип данных, предназначенный для хранения одного символа (управляющего или печатного) в определённой кодировке. Может являться как однобайтовым (для стандартной таблицы символов), так и многобайтовым (к примеру, для Юникода). Основным применением является обращение к отдельным знакам строки.

Язык C

В языке Си размер типа равен одному байту.[1] В общем случае размер типа char на конкретной платформе регулируется значением константы CHAR_BITS, определённой в заголовочном файле limits.h. По умолчанию и на платформах x86 она равна 8. Char может вмещать максимум один символ.

Если char определён как signed (знаковый), то его диапазон значений составляет от −128 до 127 (может быть на единицу дальше в положительную сторону, в зависимости от реализации). Если он определён как unsigned (беззнаковый), то его значения могут составлять от 0 до 255. Значение, содержащееся в этом типе, можно всегда безопасно привести к значению типа int. В Си нет примитивных типов для работы со строками, поэтому для работы с ними используется указатель char *.

Литература

  • Подбельский В. В. «Программирование на языке Си»

Примечания

  1. Подбельский В. В. Программирование на языке Си, стр. 23-25