Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Типы данных
Программы оперируют с различными данными, которые могут быть простыми (скалярными) и структурированными. Простые данные - это целые и вещественные числа, перечисляемые и указатели (адреса объектов в памяти). Целые числа не имеют, а вещественные имеют дробную часть. Структурированные данные - это массивы и структуры.
В языке Си различают понятия " тип данных" и " модификатор типа". Тип данных - это, например, целый, а модификатор - со знаком или без знака. Целое со знаком будет иметь как положительные, так и отрицательные значения, а целое без знака - только положительные значения. В языке Си выделяются пять базовых типов, которые задаются следующими ключевыми словами: char - символьный; int - целый; float - вещественный; double - вещественный двойной точности; void - не имеющий значения.
Краткая характеристика типов:
Объект некоторого базового типа может быть модифицирован. С этой целью используются специальные ключевые слова, называемые модификаторами. В стандарте ANSI языка Си имеются следующие модификаторы типа:
Использование модификаторов для базовых типов
Модификаторы записываются перед спецификаторами типа, например: unsigned char, long int. Если после модификатора опущен спецификатор, то компилятор предполагает, что этим спецификатором является int. Таким образом, следующие строки: short а; signed short а; short int а; signed short int а; являются идентичными и определяют объект а, как короткий целый (2 байта). Строки: unsigned b; unsigned int b; определяют объект b, как целый без знака(4 байта). Модификатор signed является необязательным и определяется по умолчанию. В Си принято соглашение по соотношению размерности объектов с модификаторами: short ≤ int ≤ long. В таблицах показаны возможные сочетания модификаторов (unsigned, signed, short, long) со спецификаторами (char, int и double), а также приведены размеры полей и диапазоны значений объекта (для 32-разрядных компиляторов).
Целые типы
Вещественные типы
· S — знак, E — показатель степени, I — целая часть, F — дробная часть · Так же, как и для целых, знаковый бит — старший. · В Visual studio 2010 типы double и long double – это различные типы, но по диапазону представления чисел long double эквивалентен double.
Модификатор const позволяет определить имя, тип и задать значение константе. Строки const float x = 32.78; const int short_MIN = -32768; - определяет вещественную константу x со значением 32.78 и целочисленную константу short_MIN со значением -32768. Использовать эти значения в программе можно по имени константы, изменять значения констант в программе не разрешается. В памяти для констант выделяется количество байт в соответствии с размерностью заданного для нее типа. В операторах программы рекомендуется, как правило, вместо значений констант использовать имена констант. Это улучшает читаемость программы и облегчает ее модификацию. Директива #define также используется для определения константных значений. В отличие от использования спецификатора const память для определяемых имен не выделяется. Например: #define NMAX 100 ... int a[NMAX]; double x[NMAX]; В том случае в тексте программы везде, где встречается имя NMAX, перед компиляцией производится замена имени NMAX на его значение 100. После замены в программе будут строки: int a[100]; double x[100]; Только после этого начинается компиляция программы. Эта подмена действует только на время компиляции и не изменяет исходную программу.
|