Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций1+2.doc
Скачиваний:
29
Добавлен:
27.05.2015
Размер:
143.87 Кб
Скачать

1.3. Переменные и именованные константы

Переменная как объект. Одним из основных понятий языка Си является объект - именованная область памяти. Частный случай объекта - переменная. Отличительная особенность переменной состоит в возможности связывать с ее именем различные значения, совокупность которых определяется типом переменной. При задании значения переменной в соответст­вующую ей область памяти помещается код этого значения. Доступ к значению переменной наиболее естественно обеспечи­вает ее имя, а доступ к участку памяти возможен только по его адресу.

Определение переменных. Каждая переменная перед ее ис­пользованием в программе должна быть определена, т.е. для переменной должна быть выделена память. Размер участка па­мяти, выделяемой для переменной, и интерпретация содержи­мого зависят от типа, указанного в определении переменной.

В соответствии с типами значений, допустимых в языке Си, рассмотрим символьные, целые и вещественные переменные автоматической памяти.

Простейшая форма определения переменных:

тип список _ имен_ пepeменных;

где имена переменных - это выбранные про грамм истом идентификаторы, которые в списке разделяJOТСЯ запятым;

тип - один из уже упоминаемых (в связи с константами) типов.

Целочисленные типы:

char - целый длиной не менее 8 бит;

short int - короткий целый (допустима аббревиатура short);

int - целый;

long - длинный целый.

Каждый из целочисленных типов может быть определен ли­бо как знаковый signed либо как беззнаковый unsigned (по умолчанию signed).

Различие между этими двумя типами - в правилах интерпре­тации старшего бита внутреннего представления. Спецификатор signed требует, чтобы старший бит внутреннего представления воспринимался как знаковый; unsigned означает, что старший бит внутреннего представления входит в код представляемого числового значения, которое считается в этом случае беззнако­вым. Выбор знакового или беззнакового представления опреде­ляет предельные значения, которые можно представить с помощью описанной переменной. Например, пере­менная типа unsigned int позволяет представить числа от 0 до 65535, а переменной типа signed int (или просто int) соответствуют значения в диапазоне от -32768 до +32767.

По умолчанию, при отсутствии в качестве префикса клю­чевого слова unsigned любой целый тип считается знаковым (signed). Таким образом, употребление совместно со служеб­ными словами char, short, int, long префикса signed излишне. Допустимо отдельное использование обозначений (специфи­каторов) "знаковости". При этом

signed эквивалентно signed int;

unsigned эквивалентно unsigned int.

Примеры определений целочислениых переменных:

char symbol, сс;

unsigned char code;

int numЬer, row;

unsigned long long_number;

Обратите внимание на необходимость символа "точка с запятой" в конце каждого определения.

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

float - вещественный одинарной точности;

double - вещественный удвоенной точности;

long double - вещественный максимальной точности.

Значения всех вещественных типов в ЭВМ представляются с "плавающей точкой", т.е. с мантиссой и порядком, как было рассмотрено при определении констант (§ 1.2). Примеры опре­делений вещественных переменных:

float х, Х, сс3, pot_8;

double е, Stop, В4;

Предельные значення переменных. Предельные значения констант (и соответствующих переменных) разработчики ком­пиляторов вправе выбирать самостоятельно исходя из аппарат­ных возможностей компьютера. Однако при такой свободе выбора стандарт языка требует, чтобы для значений типа short и int было отведено не менее 16 бит, для long - не менее 32 бит. При этом размер long должен быть не менее размера int, а int ­не менее short Предельные значения арифметических констант и переменных для большинства компиляторов приведены в табл. 3.

Таблица 3