Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод рекомендации АЯ 1 семестр.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
698.68 Кб
Скачать

1.2.3. Объявления переменных в языке Си

Общий формат объявления переменных:

[<спецификатор_класса_памяти>] [<модификатор>] <тип> <имя1>[=<инициализатор1>], <имя2>[=<инициализатор2>],…, <имяN>[=<инициализаторN>];

Необязательный элемент <спецификатор_класса_памяти> (необязательный элемент далее в записи форматов будет помещаться в квадратные скобки) одно из ключевых слов: auto, register, static, extern.

Необязательные элемент <модификатор> - могут быть ключевые слова: const, volatile и др.

Модификатор const означает, что инициализация (присвоение начального значения) переменной обязательна, и далее значение переменной изменять нельзя. Модификатор volatile означает, что данная переменная может быть изменена где- то в другом месте, а не обязательно в этой программе, например, программой обработки прерываний (модификатор влияет на режим оптимизацию работы компилятора).

Примеры:

int i, j=10;

const float pi=3.14; // Далее запрещено изменять значение pi

extern double x; // Это есть описание, определение переменной в другом

// месте.

unsigned char C1=‘A’, C2=10, C3;

1.2.4. Константы в языке Си

Кроме переменных в программе часто используются константы.

Константа – это значение, которое не может быть изменено в процессе работы программы.

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

  1. Целые константы.

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

  • тип int (по умолчанию), в оперативной памяти константа данного типа кодируется в MS DOS – 2 байтами, в Win32 – 4 байтами, примеры: 1245, 6, 175, 5, 1425;

  • тип long – в оперативной памяти константа кодируется 4 байтами, константа будет иметь этот тип, если диапазон выходит за тип int (в MS DOS), или явно указывается тип с помощью суффикса l (L), примеры: 12l, 14567L, 125234 (для MS DOS);

  • константы могут быть представлены типами unsigned int и unsigned long, для явного указания необходимо использовать суффикс u (U), примеры 105u (unsigned int), 105ul(unsigned long).

Целые константы всегда задают неотрицательные значения, для задания отрицательного значения используют операцию унарный минус, которую применяют к целой константе: -1000, -200l.

Целые константы также могут иметь различные формы представления. Формы представления введены для удобства программиста, одно и то же значение константы может быть представлено в различных формах в исходном тексте программы, при этом после компиляции полученный исполняемый код и кодирование константы в памяти будет идентично и не зависит от формы представления. Для целых констант существуют три формы представления:

  • в десятичной системе счисления (по умолчанию) – 1234, 378l, 346;

  • в шестнадцатеричной системе счисления, признаком данного представления являются 2 первых символа константы 0x (или 0X), в константе можно использовать шестнадцатеричные цифры: 0..9, A (a), B (b), …, F (f), примеры – 0x10, 0x10acd, 0XFFFF;

  • в восьмеричной системе счисления, признаком данного представления является первый символ 0, в константе можно использовать восьмеричные цифры: 0..7, примеры – 010, 070, 01237;

  • Вещественные константы.

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

    Существует следующие три типа вещественных констант:

    • тип double (по умолчанию), в оперативной памяти константа кодируется 8 байтами, примеры: 12.5, .123, 0.5, 1. (наличие точки в таком представлении обязательно);

    • тип float – 4 байта, используется суффикс f (F), примеры: 10.5f, 0.123F;

    • тип long double – 10 байт, используется суффикс l (L), примеры: 10.5l, 0.9L.

    Существуют две формы представления вещественных констант:

    • форма с точкой (десятичная форма), примеры: 10.125, 1. (значение 1.0), .125 (значение 0.125), 0.125, представляется в форме десятичной дроби, состоит из трех основных элементов целой части, точки, дробной части, причем, целая или дробная часть могут отсутствовать, наличие точки обязательно, если целая часть отсутствует, то она считается равной 0, если дробная часть отсутствует, то она также считается равной 0;

    • форма со знаком экспоненты (экспоненциальная форма): 1e-5 , 12.23E4F (тип константы float), представляется в виде мантиссы и порядка, мантисса записывается слева от знака экспоненты (Е или е), порядок — справа от знака. Значение константы определяется как произведение мантиссы и возведенного в указанную в порядке степень числа 10. .