Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системне програмування.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
74.23 Кб
Скачать

3.2.6. Типы переменных в языке c и их объявление

В отличие от констант, переменные в программе могут принимать различные значения. В языке C определены следующие типы переменных:

  • простые переменные (скалярные числовые переменные и символьные переменные);

  • переменные перечислимого типа (простые переменные целого типа, принимающие значение из заданного набора именованных значений);

  • указатели (целочисленные переменные, указывающие на другую переменную, т.е. содержащие адрес этой переменной);

  • массивы (переменные, содержащие совокупность элементов одинакового типа);

  • структуры (переменные, содержащие совокупность элементов, которые могут иметь разный тип);

  • объединения (переменные, содержащие совокупность элементов, которые могут иметь различные типы, но занимать одну и ту же область памяти).

Простые переменные могут принимать только одно значение – числовое или символьное. Все остальные типы переменных, как видно из их определений, формируются из простых переменных. Поэтому простые переменные часто называют базовыми, или примитивными, переменными.

Тип константы определяется непосредственно ее значением, например, константа 125 является константой целого типа, а константа 'n' – это константа символьного типа. Тип переменной в программе на языке C должен быть явно задан (объявлен). Объявление переменной имеет следующий синтаксис:

имя-типа идентификатор-1, идентификатор-2, ..., идентификатор-n;

Имя-типа – ключевое слово языка C для обозначения типа (например, int или struct). Как видно из формата, в одном предложении можно объявить несколько переменных, имеющих один и тот же тип.

В языке C все переменные должны быть явно объявлены перед их использованием.

3.2.7. Объявление простых переменных

Рассмотрение типов переменных начнем с простых переменных.

Типы простых переменных языка C приведены в табл. 3.2.3.

Табл. 3.2.3. Типы простых переменных языка C

Ключевое слово

Тип

char

Единичный байт, который может содержать один символ из допустимого множества символов.

int

Целое число.

float

Число с плавающей точкой одинарной точности.

double

Число с плавающей точкой двойной точности.

В отличие от других типов данных, при объявлении простой переменной для нее может задаваться дополнительное ключевое слово или слова. Эти ключевые слова уточняют тип переменной и называются квалификаторами.

Квалификаторы, которые можно использовать с указанными базовыми типами, приведенные в табл. 3.2.4.

Табл. 3.2.4. Квалификаторы простых переменных языка C

Ключевое слово

Тип

short

Короткое int.

long

Длинное int, float или double.

signed

Переменная int или char со знаком (первый бит выделяется под знак).

unsigned

Переменная int или char без знака.

const

Значение переменной не может быть изменено в программе.

volatile

Значение переменной может изменяться в программе.

Если тип переменной опущен, предполагается int (в этом случае должен быть обязательно задан один из квалификаторов).

В объявлении простой переменной, также в отличие от других типов данных, можно задать начальное значение (инициализировать переменную). Инициализация переменной имеет следующий синтаксис:

идентификатор=константа

где идентификатор – это идентификатор переменной, а константа – значение (числовое и символьное), которое присваивается переменной с указанным идентификатором.

Примеры объявления простых переменных:

  1. int i; /* Объявление целой переменной i */

  2. unsigned long A1, A2; /* Объявление двух переменных

типа long без знака */

  1. double epsilon; /* Объявление переменной epsilon

с двойной точностью */

  1. float const pi = 3.1415926; /* Объявление числа p как

константы с плавающей точкой */

5. const maxint = 32767; /* Объявление целой константы */

6. char esc=’\\’; /* Объявление символьной

переменной и присвоение

ей начального значения */

По умолчанию в C выполняются следующие соглашения:

  1. Если указан только квалификатор long или short, а описание типа опущено, то предполагается, что тип – int.

  2. Если опущены квалификаторы signed или unsigned, то для char предполагается signed.

Конкретная реализация приведенных типов с квалификаторами зависит от компьютерной платформы, операционной системы и используемого компилятора.

Представление простых типов данных в компиляторе Boland C++ приведено в табл. 3.2.5.

Табл. 3.1.5. Представление простых типов данных в компиляторе Borland C++

Тип данных

Размер (бит)

Диапазон значений

char

8

-128 ... 127

signed char

8

-128 ... 127

unsigned char

8

0 ... 255

short int

16

-32768 ... 32767

unsigned int

16

0 … 65535

int

16

-32768 ... 32767

long

32

-2147483648 ... 2147483647

unsigned long

32

0 … 4294967295

float

32

3,410-38 … 3,41038

double

64

1,710-308 … 1,710308

long double

80

3,410-4932 … 3,4104932

Константы тоже хранятся в программы как данные определенного типа. Символьная константа занимает один байт в памяти. Как видно из таблицы существует несколько типов данных для целых чисел. По умолчанию, десятичные целые константы со значением, которое лежит в диапазоне значений для типов short или int, запоминаются в памяти как данные типа int, а константы в диапазоне для значений long запоминаются как данные типа long. Восьмеричные и шестнадцатеричные константы запоминаются как данные типа unsigned int или unsigned long. Любую целую константу (десятичную, восьмеричную или шестнадцатеричную) можно сохранить как тип long, если указать после ее значения букву l или букву L, например: 1L, 020L, 0X10Al.

Если целую десятичную константу требуются представить в памяти как число без знака (unsigned), сразу после значения константы необходимо указать букву u или букву U, например, 12U. Если необходимо определить константу как имеющую тип long unsigned, необходимо указать после константы две буквы в произвольном порядке, например, 0ul.

По умолчанию компилятор предполагает, что константы с плавающей точкой являются числами с удвоенной точностью (типа double), однако, если после константы поставить букву f или букву F, то константа будет трактоваться как данное типа float, например,1.5f. Если необходимо представить константу как данное типа long double, после нее указывается буква l или буква L, например,1.67e-17L.