Char/ru
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
italiano (it) │
русский (ru) │
Переменная типа char хранит один символ и в настоящее время имеет размер 1 байт (AnsiChar является псевдонимом типа char). Однако, в будущем char может стать таким же типом, как WideChar. В настоящее время byte и char почти синонимы - имеют размер 1 байт (8 бит), однако, char может использоваться только для хранения символов или части строки, но не может использоваться в арифметических выражениях, в то время как byte может использоваться только как числовой тип.
Например:
var ch: char;
c: byte;
begin
ch := 'A'; c := 65; { одинаковые и допустимые действия }
ch := 65; c := 'A'; { в то время как их внутреннее представление одинаково,
непосредственные присваивания между типами Char и Byte недопустимы }
end.
Использование типов данных char или byte обеспечивает лучшую документированность при работе с конкретными переменными. Тип char может быть приведен к типу byte с помощью функции ord. Значения типа byte могут быть приведены к типу char с помощью функции chr.
Функции для работы с типом char следуют таблице ASCII.
Исправленный вариант приведенной выше программы:
var ch: char;
c: byte;
begin
ch := 'A'; c := 65; { одинаковые и допустимые действия }
ch := chr(65); c := ord('A'); { теперь допустимо }
ch := Char(49); c := Byte('A'); { также допустимо и гарантированно выполнится при компиляции }
end.
Переменная типа char также может использоваться в цикле в качестве счетчика:
var
Loop:Char;
Begin
For Loop:='a' to 'c' do Writeln(Loop);
end.
См. также
- Символьные и строковые типы - подробное описание внутреннего представления, размещения в памяти и параметров доступа.
Типы данных | |
---|---|
Простые типы | Boolean | Byte | Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word |
Сложные типы | Array | Class | Record | Set | String | Shortstring |