Разное

Типы переменных делфи: Урок 2 — Переменные и их типы

Типы переменных — Введение в Delphi

Содержание‎ > ‎

Типы переменных

Каждая переменная имеет свой тип. Тип переменной обязательно нужно указывать, потому что разные типы переменных занимают разный размер, и компьютеру нужно знать, сколько байт в оперативной памяти требуется отвести под указанную переменную. Создание переменной состоит из двух этапов:

  1. Объявление переменной (указываем имя и тип переменной ). Переменная объявляется в специальном разделе var (позже мы познакомимся с этим разделом).
  2. Присвоение переменной какого-то значения.

Объявление переменной выглядит так:

var
   Peremennaya1 : Real;
   Peremennaya2, Peremennaya3 : Integer;

Как видно из примера, вначале указывается имя переменной, затем, после двоеточия указывается тип переменной.

Если нужно объявить несколько переменных одного типа, их имена разделяются запятыми. В приведенном примере мы объявили одну вещественную переменную типа Real и две целые переменные типа Integer.

Присваивать значение переменным можно неоднократно. Переменная потому и называется так, что ее значение в процессе работы программы может меняться. Оператор присвоения значения выглядит так:

Примеры присвоения значений переменным:

A := 10; 
B := 20.35; 
C := 'Это строка'; 
D := True; 
A := 3+5-1;

Механизм присвоения значения работает следующим образом: вначале рассчитывается значение в правой части команды, то есть, после знака » := «. Затем результат этого значения записывается в переменную. В последней строке примера мы использоваливыражение «3+5-1». Вначале получается результат, в нашем случае он равен 7. Затем этот результат записывается в переменную.

В дальнейшем, имя переменной можно использовать в различных выражениях, например:

A1 := 3;
A2 := A1 + 7;
A1 := A1 + 1;

В первой строке мы записали в переменную число 3. Вторая строка содержит выражение, результатом которого будет число 10. А вот третья строка интересней. Как вы полагаете, что будет записано в переменную A1? Если ваш ответ 4, вы совершенно правы: вначале рассчитывается результат правой части команды, где в переменной A1 еще старое значение, затем он записывается в эту же переменную, изменяя ее значение.

В таблице перечислены основные типы переменных:

Название типаОписаниеПояснения
IntegerЦелое числоПеременная может содержать только целые числа, как со знаком, так и без знака.
RealВещественное числоПеременная может принимать в качестве значения целые и дробные числа, со знаком и без знака.
StringСтрокаПеременная может хранить любые символы и наборы символов. В переменную String можно записать до 2 Гб символов.
BooleanЛогический типБулева переменная, может быть либо False (Ложь), либо True (Истина).

На самом деле, типов переменных значительно больше, и по мере усложнения программ мы будем изучать эти типы. В таблице представлены только основные типы.



Тип variant в Delphi

Май 27th, 2016 admin

Тип данных variant часто используется тогда, когда тип какого то объекта ранее не известен или когда какие-то функции или процедуры требуют именно тип аргументов — variant. Однако следует знать, что затраты памяти и времени на работу с типом variant больше, чем с обычными типами.

В переменных типа данных variant могут храниться данные любых типов данных, кроме записей, множеств, статических массивов, файлов, классов или ссылок на классы и Int64 (-263/263-1). Объекты Com и Cobra также могут храниться в типе variant.

Переменные типа variant занимают 16 битов и содержат код типа и значения переменной или указатель на это значение. В момент создания эти переменные инициализируются специальным значением Unassigned. Значение переменной nil свидетельствует о неизвестном или ошибочном значении переменной. Вы можете заказать мощный и надежный сервер lenovo nextscale n1200 по оптимальной и доступной цене.

Узнать действительный тип значения переменной variant можно при помощи функции VarType, возвращающей значение поля VarType записи типа TvarData (модуль System), содержащее код типа переменной variant. Имеется также предопределенная константа varTypeMask, сложение при которой по операции and с переменной типа TVarData возвращает истинный тип переменной. Например:

VarType(V) and varTypeMask = varDouble

вернет true, если в переменной V в данный момент хранится значение типа double или массив значений double.

Некоторые значения типов, возвращаемые функцией VarType:

Константа

Численное значение

Тип

varEmpty

$0000

Unassigned
varNull

$0001

null
varInteger

$0003

Integer
varSingle

$0004

Single
varDouble

$0005

Double
varOLEstr

$0008

Ссылка на динамически размещенную строку UNICODE
varWord

$0012

Word
varString

$0100

Ссылка на динамически размещенную строку в стиле Pascal
varAny

$0101

Тип Cobra
varTypeMask

$0FFF

Битовая маска для извлечения кода типа
varArray

$2000

Бит, устанавливаемый при ссылке на массив variant
varByRef

$4000

Бит, устанавливаемый при ссылке на тип variant

. delphi-box.ru varnull ссылка на тип Delphi

Опубликовано в рубрике Pascal

Комментирование и размещение ссылок запрещено.

Встроенные типы данных Delphi и объемы их памяти

Jeroen W. Pluimers о .NET, C#, Delphi, базах данных и личных интересах

Встроенные типы данных Delphi и их объемы памяти

выпущенный еще в 2011 году с Delphi XE2, иногда я забываю, какие типы данных имеют собственный размер, а какие сохраняют свой размер независимо от разрядности компилятора (викисловарь/википедия).

Это сообщение было мотивировано с помощью [WayBack] Начав с Delphi до того, как стал доступен тип Cardinal (Или всегда? Я не могу вспомнить). Я обычно объявляю 32-битные беззнаковые переменные как… — Томас Мюллер (dummzeuch) – Google+

Самое простое различие между Win32 и Win64, но существует больше не 32-битных платформ, поэтому их уже недостаточно:

  • [WayBack] 64-битные типы данных Windows по сравнению с 32-битными Типы данных Windows — RAD Studio 10. 2 Токио
  • [WayBack] 64-битные типы данных Windows по сравнению с 32-битными типами данных Windows — RAD Studio XE3 (да, это не было задокументировано в XE2)

Наиболее простыми для меня являются приведенные ниже таблицы, которые были представлены только в Delphi 10.2 Tokyo: [WayBack] Типы данных Delphi для интеграции API — RAD Studio.

Я выделил жирным шрифтом те, которые меняют размер .

Целочисленные типы данных

Тип Описание Указатель
Байт 8-битное целое число без знака Пбайт
Короткий интервал 8-битное целое число со знаком Пшортинт
Word 16-битное целое число без знака Слово
Малый Целый 16-битное целое число со знаком PSmallInt
Кардинал 32-битное целое число без знака Кардинал
Длинное слово 32-разрядное целое число без знака (32-разрядные платформы Windows, OSX32, 32-разрядные платформы iOS и Android)
64-разрядное целое число без знака (64-разрядные платформы iOS и 64-разрядные платформы Linux)
PLongWord
Фиксированный UInt 32-битное целое число без знака Пфикседуинт
Целое число 32-битное целое число со знаком PЦелое число
LongInt 32-разрядное целое число со знаком (32-разрядные платформы Windows, OSX32, 32-разрядные iOS и Android)
64-битное целое число со знаком (64-битные платформы iOS и 64-битные платформы Linux)
PLongint
FixedInt 32-битное целое число со знаком Пфиксединт
UInt64 64-битное целое число без знака PUInt64
Целое64 64-битное целое число со знаком PInt64
Нативуинт 64-разрядное или 32-разрядное целое число без знака, зависящее от платформы PNativeUInt
НативИнт 64-разрядное или 32-разрядное целое число со знаком, зависящее от платформы PNativeInt

Типы данных с плавающей запятой

Тип Описание Указатель Запись
Одноместный Значение с плавающей запятой одинарной точности (4 байта) Одиночный TSingleRec
Двойной Значение двойной точности с плавающей запятой (8 байтов) PДвойной TDoubleRec
Расширенный Значение с плавающей запятой повышенной точности (10 байт в Win32, , но 8 байт в Win64 )
См.  страницу о приложениях для нескольких устройств.
PРасширенный TExtended80Rec
Реальный Псевдоним двойника н/д н/д

Ранее в документацию

  • Delphi XE2 был добавлен раздел, описывающий эффекты разрядности платформы в [WayBack] Simple Types (Delphi) — RAD Studio XE2
  • В документации Delphi XE8 добавлена ​​дополнительная информация для 64-разрядных версий iOS в [WayBack] Simple Types (Delphi) — RAD Studio XE8
  • В документации Delphi 10.2 Tokyo добавлена ​​дополнительная информация о другой 64-битной платформе POSIX в [WayBack] Simple Types (Delphi) — RAD Studio 10.2 Tokyo 9 31 -1) Подписанный 32-битный Целое число 64-разрядные платформы -9223372036854775808..9223372036854775807
    (-2 63 . .2 63 -1) Подписанный 64-битный Целое64 Нативуинт 32-разрядные платформы 0..4294967295
    (0..2 32 -1) Беззнаковый 32-разрядный Кардинал 64-разрядные платформы 0..18446744073709551615
    (0..2 64 -1) Беззнаковый 64-разрядный UInt64 LongInt 32-разрядные платформы и 64-разрядные платформы Windows -2147483648..2147483647
    (-2 31 ..2 31 -1) Подписанный 32-битный Целое число 64-разрядные платформы POSIX включают iOS и Linux -9223372036854775808..9223372036854775807
    (-2 63 . .2 63 -1) Подписанный 64-битный Целое64 Лонгворд 32-разрядные платформы и 64-разрядные платформы Windows 0..4294967295
    (0..2 32 -1) Беззнаковый 32-разрядный Кардинал 64-разрядные платформы POSIX включают iOS и Linux 0..18446744073709551615
    (0..2 64 -1) Беззнаковый 64-разрядный UInt64
    Примечание.  32-разрядные платформы включают 32-разрядную версию Windows, 32-разрядную версию macOS, 32-разрядную версию iOS, iOS Simulator и Android.
    Независимые от платформы целые типы

    Целочисленные типы, не зависящие от платформы, всегда имеют одинаковый размер, независимо от используемой платформы. Целочисленные типы, не зависящие от платформы, включают ShortInt, SmallInt, LongInt, Integer, Int64, Byte, Word, LongWord, Cardinal и UInt64.

    Независимые от платформы целочисленные типы

    Тип Диапазон Формат Псевдоним
    Короткий интервал -128..127 8-битный со знаком Целое8
    Малый Целый -32768..32767 Подписанный 16-битный Целое16
    Фиксированное Целое -2147483648..2147483647 Подписанный 32-битный Целое32
    Целое число -2147483648..2147483647 Подписанный 32-битный Целое32
    Целое64 -9223372036854775808..9223372036854775807
    (-2 63 ..2 63 -1)
    Подписанный 64-битный
    Байт 0. .255 Беззнаковый 8-битный UInt8
    Word 0..65535 Беззнаковый 16-битный UInt16
    Фиксированный UInt 0..4294967295 Беззнаковый 32-разрядный UInt32
    Кардинал 0..4294967295 Беззнаковый 32-разрядный UInt32
    UInt64 0..18446744073709551615
    (0..2 64 -1)
    Беззнаковый 64-разрядный

    Томас Мюллер написал в блоге о Псевдоним на [WayBack] Delphi LongWord не всегда представляет собой 32-битное целое число без знака – блог twm (через [WayBack] Знаете ли вы, что LongWord в Delphi (больше) не всегда является 32-битное целое число без знака? — Томас Мюллер (dummzeuch) — Google+), и я думаю, что он понял это задом наперед из того, что означает Embarcadero:

    • NativeInt на 32-разрядных платформах является псевдонимом Integer (поэтому он подписан 32-разрядным)
    • NativeInt на 64-битных платформах является псевдонимом Int64 (поэтому он Signed 64-bit)

    Еще несколько забавных ссылок

    Для ленивого дня:

    • История
      • [WayBack] Delphi 2007: простые типы
      • [WayBack] Delphi 2009: простые типы
    • Конструкция компилятора [WayBack]. Почему так сложно создать 64-битную версию Delphi? — Переполнение стека
    • [WayBack] Подготовка к Delphi 64
    • [WayBack] Оракул в Delphi: 64-битная версия
      • [WayBack] The Oracle в Delphi: больше интересных фактов об ассемблере x64 — новые директивы ассемблера
      • [WayBack] The Oracle в Delphi: интересные факты об ассемблере x64
      • [WayBack] Oracle в Delphi: записи в журнале регистрации Delphi за день:
      • [WayBack] Оракул в Дельфах: разделенные и запутанные
      • [WayBack] Оракул в Delphi: Это мой фрейм стека, мне плевать на твой фрейм стека!
      • [WayBack] Оракул в Дельфах: интервью Delphi-Treff – на английском языке

    –jeroen

    Оценить:

    Нравится:

    Нравится Загрузка…

    Эта запись была опубликована 21 августа 2019 г. в 18:00 и находится в разделе Delphi, Разработка, Разработка программного обеспечения. Вы можете следить за любыми ответами на эту запись через ленту RSS 2. 0. Вы можете оставить отзыв или вернуться со своего сайта.

     

  • %d блоггерам нравится это:

      Делфи | BestProg

      • I. Структурное программирование. Базовый курс
        • 1. Разработка программ на ПК. Алгоритмы
          • 1.1. Разработка программ на ПК. Этап подготовки программы на ПК. Компиляторы и интерпретаторы
          • 1.2. Понятие алгоритма. Способы написания алгоритмов. Классификация алгоритмов по структуре. Свойства алгоритма
          • 1.3. Принципы структурного программирования. Модульная разработка программного обеспечения
          • 1.4. Алгоритмический язык. Состав алгоритмического языка. Описание языка
        • 2. Основные понятия языка Паскаль. Типы данных. Переменные, константы
          • 2.1. Структура программы на Паскале
            • 2.1.1. Структура программы на Паскале в системах программирования Delphi и Lazarus. Консольное приложение 9. Тип текста
          • 2.3. Пользовательские типы данных
            • 2.3.1. Перечислимые и интервальные типы данных
        • 3. Основные синтаксические конструкции языка Паскаль
          • 3.1. Основные конструкции языка Паскаль
          • 3.2. Операторы управления вычислительными процессами
            • 3.2.1. Ветвящаяся структура. Условный оператор if
            • 3.2.2. Петли. Операторы for, while-do, repeat-until. Операторы ломаются, продолжают
            • 3.2.5. Оператор вариант case
          • 3.4. Массивы
          • 3.5. Строки символов. Строковый тип
            • 3.5.1. Строки символов типа String. Операции со строками символов
            • 3.5.2. Функции для работы со строками символов. Функции Concat, Copy, Delete, Insert, Length, Pos, Val, Str
          • 3.6. Строки символов типов PChar, PAnsiChar, PWideChar
            • 3.6.1. Реализация строк типа PChar в памяти компьютера. Типы PAnsiChar, PWideChar. Выделение памяти для строк. Доступ по индексу
            • 3.6.2. Функции сравнения строк. Функции StrComp, StrIComp, StrLComp, StrLIComp
            • 3.6.3. Функции, изменяющие содержимое строки. Функции StrCat, StrLCat, StrLower, StrUpper, StrCopy, StrECopy, StrLCopy, StrMove
            • 3.6.4. Функции для поиска и получения информации о строках. Функции StrEnd, StrLen, StrPos, StrScan, StrRScan
          • 3.6. Записи

       

      1. Delphi 7

      • 001 – Создание таблиц базы данных с помощью утилиты Database Desktop
      • 002 — Создание перекрестных таблиц в Delphi

      2. Embarcadero RAD Studio – 2010.

      • 001 – Программирование события в Delphi 2010
      • 002 — Расчет площади круга и объема сферы
      • 003 — Создание нового проекта в Embracadero RAD Studio 2010 (Delphi 2010)
      • 004 — Создание новой формы и подключение ее к основной форме приложения
      • 006 — Настройка табуляции для компонентов на форме
      • 007 — Создание главного меню.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *