Char/ru
Deutsch · English · Español · Français · Italiano · Русский
Переменная типа 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.См. также
- Символьные и строковые типы - подробное описание внутреннего представления, размещения в памяти и параметров доступа.
From the Free Pascal wiki, page "Char/ru", as it stood on 2020-01-24 after a change by Bart, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.