Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.1.2 - Основные поняти. Типы данных.doc
Скачиваний:
12
Добавлен:
03.11.2018
Размер:
134.14 Кб
Скачать

Операторы объявления

Для создания переменных, констант и пользовательских типов данных в языке С используются соответствующие операторы объявлений.

Переменная - именованная область памяти вычислительной машины, предназначенная для хранения значений определенного типа, с произвольным методом доступа: чтение и запись.

Имя переменой - разрешенный идентификатор языка С не использовавшийся ранее для обозначения других переменных, типов, элементов перечислений или имен функций.

Оператор объявления переменных имеет следующий синтаксис:

тип имя1[,имя2[,...]];

Сначала указывается тип данных, а затем через запятую указывается список имен переменных. После последнего имени переменной в списке ставится точка с запятой. Примеры:

int a, b, c;

double x, y;

char ch;

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

Правила хорошего стиля программирования предъявляют следующие требования к форматированию операторов объявлений переменных:

  • объявление переменных нового типа всегда начинается с новой строки;

  • имя переменой должно быть информативным, т.е. из имени переменной должно быть понятно ее назначение;

  • имя переменной не должно быть слишком длинным;

  • после объявления переменной в этой же строке или на предыдущей строке в комментарии желательно дать краткое описание назначения переменной;

  • необходимо разделять имена переменных пробелами (в разумных пределах).

ПРИМЕЧАНИЕ: Здесь и далее будут даваться рекомендации по стилю оформления текстов программ, которых следует придерживаться в процессе выполнения лабораторных работ и вообще при написании программ.

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

тип имя1[=значение1][, имя2[=значение2][,...]];

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

int a=26, b=032, c=0x1A;

double x=2.5e2, y=0x1.ffe-3;

char ch=’Z’;

При объявлении переменной с инициализацией в качестве значения обычно указывается некоторая константа.

В языке С присутствует три вида констант:

  • целочисленные,

  • вещественные,

  • символьные.

Целочисленные константы указываются в трех системах исчисления. Десятичная константа указывается десятичным числом в обычной форме (переменная a из примера). Восьмеричная константа указывается числом, начинающимся с цифры ноль и содержащим цифры 0...7 (переменная b из примера). Шестнадцатеричная константа указывается целым числом с префиксом 0x или 0X, содержащим цифры 0...9 и буквы латинского алфавита a...f, A...F (переменная c из примера). Целочисленные константы также имеют суффиксы, приведенные в таблице 2.1. Примеры:

unsigned long int a = 123ul;

long long int b = 10LL;

unsigned long long int c = 200ull;

Таблица 2.1 - Суффиксы целочисленных констант

Вещественные константы записываются в десятичной или шестнадцатеричной системах исчисления. Позиция запятой указывается точкой, экспонента указывается после латинской буквы e (или E) (переменные x и y в примере). Суффиксы вещественных констант:

  • f или F - тип float,

  • l или L - тип long double.

Примеры:

float x = 10.5f;

long double y = 12.5e200L;

Символьные константы записываются в одинарных кавычках (переменная ch из примера). Кроме того, в языке С присутствуют специальные символы:

‘\’’ - одинарная кавычка,

‘\”’ - двойная кавычка,

‘\\’ - обратный слеш,

‘\?’ - знак вопроса,

‘\a’ - звуковой сигнал,

‘\b’ - пробел,

‘\f’ - прокрутка страницы,

‘\n’ - перевод строки,

‘\r’ - возврат каретки,

‘\t’ - горизонтальная табуляция,

‘\v’ - вертикальная табуляция.

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

int a=5, b=4, c=a+b-3;

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

const тип имя1=значение1[, имя2=значение2[,...]];

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

const unsigned int x=80, y=25;

const double pi=3.1415;

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

typedef имя_старого_типа имя_нового_типа;

Описание нового типа начинается с ключевого слова typedef, указывается имя старого типа данных, а затем имя нового типа данных. Пример:

typedef unsigned int word;

Тип word - целое незнаковое число. Объявлять переменные пользовательского типа можно только после его описания.

Согласно стандарту С99 операторы объявления переменных могут располагаться в любом месте программы, если это не противоречит синтаксису языка С. В более ранней версии (стандарт С89), операторы объявления могли располагаться только в начале тела функции.

Оператор объявления пользовательских типов также может располагаться в любом месте программы, но рекомендуется располагать его сразу после подключения библиотек (до описания функции main).

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