Char/ru

From Lazarus wiki
Jump to navigationJump to search

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