Описание данных целого типа.
При описании данных необходимо ввести только тип, за которым должен следовать список имен переменных. Ниже приведены некоторые возможные примеры описаний:
int erns;
short stops;
long Johns;
int hogs, cows, goats;
В качестве разделителя между именами переменных необходимо использовать запятую; весь список должен оканчиваться символом «точка с запятой». Вы можете собрать в один оператор описания переменных с одним и тем же типом или, наоборот, разбить одно описание на несколько операторов. Например, описание
int erns, hogs, cows, goats;
будет давать тот же самый эффект, что и два отдельных описания типа int в предшествующем примере. При желании вы даже могли бы использовать четыре различных описания данных типа int — по одному для каждой переменной. Иногда вам могут встретиться сочетания ключевых слов, как, например, long int или short int. Эти комбинации являются просто более длинной записью ключевых слов long и short.
Целая константа
Может быть записана в десятичной,восмеричной или шестнадцатиричной системе счисления.
В десятичной записывается как обычное десятичное число,при условии,что первая цифра не является нулём.
В восмеричной целая константа записывается восмеричными цифрами и должна начинаться с нуля.
В шестнадцатиричной целая константа записывается шестнадцатиричными цифрами и должна начинаться с символов 0x или 0X.При этом для обозначения цифр от 10 до 15 иcпользуются буквы A,B,C,D,F
Модификаторы unsigned
Компиляторы языков C/C++ позволяют при описании переменных некоторых типов указывать модификатор unsigned. В настоящее время он применяется с четырьмя типами данных: char, short, int и long. Наличие данного модификатора указывает на то, что значение переменной должно интерпретироваться как беззнаковое число, т.е. самый старший бит является битом данных, а не битом знака. Предположим, мы создали новый тип данных, my_octal, в котором для записи каждого числа выделяется 3 бита. По умолчанию считается, что значения этого типа могут быть как положительными, так и отрицательными. Поскольку из 3-х доступных битов старший будет указывать на наличие знака, то диапазон возможных значений получится от -4 до 3. Но если при описании переменной типа my_octal указать модификатор unsigned, то тем самым мы освободим первый бит для хранения полезной информации и получим диапазон возможных значений от 0 до 7.
40.Числа с плавающей точкой. Описание переменных с плавающей точкой. Перечисляемый тип данных (enum).
В большинстве проектов разработки программного обеспечения оказывается вполне достаточным использовать данные целых типов. Однако в программах вычислительного характера часто применяются числа с плавающей точкой. В языке Си такие данные описываются типом float - с плавающей точкой одинарной точности; double - с плавающей точкой двойной точности;long double - тип с плавающей точкой повышенной точности;
Описание переменных с плавающей точкой.
Переменные с плавающей точкой описываются и инициализируются точно таким же образом, что и переменные целого типа. Ниже приведено несколько примеров:
float noah, jonah;
double trouble;
Перечисляемый тип данных (enum)
При объявлении переменной перечисляемого типа с ней связывается набор именованных целочисленных констант, называемых перечисляемыми константами. В каждый момент времени переменная может иметь значение одной из констант, и к ней можно обращаться по имени. К примеру, следующее описание создает перечисляемый тип air_supply, перечисляемые константы EMPTY, USEABLE и FULL, и перечисляемую переменную instructor_tank:
enum air_supply {EMPTY,
USEABLE,
FULL=5 } instructor_tank;
Все константы и переменные имеют тип int, каждая константа автоматически получает по умолчанию некоторое значение, если не указывается какое-либо другое. В предыдущем примере константа EMPTY имеет по умолчанию целое значение ноль, так как она — первая в списке и не переопределена особо. Значение константы USEABLE равно 1, поскольку она следует непосредственно за константой с нулевым значением. Константа FULL инициализирована отдельно и имеет значение 5; если бы вслед за ней в списке была еще одна константа, эта новая константа была бы равна 6.
После создания типа air_supply вы можете в дальнейшем описать другую переменную, student_tank, следующим образом:
enum air_supply student_tank;
После этого оператора можно выполнить следующие:
instructor_tank = FULL;
student_tank = EMPTY;
При этом переменная instructor_tank получит значение 5, а переменная student_tank — значение 0.
41.Модификаторы доступа. Модификатор const. Определение констант через #define. Модификатор volatile. Cовместное использование const и volatile.
Модификаторы доступа.
Модификаторы const и volatile являются новыми в С и C++. Они были добавлены в стандарте ANSI С для того, чтобы различать переменные, которые никогда не изменяются (const), и переменные, значение которых может измениться непредсказуемо (volatile).
Модификатор const.
Иногда необходимо использовать некоторою величину, которая не изменяется на протяжении всей программы. Такая величина называется константой. Например, если в программе вычисляется площадь круга и длина окружности, часто будет использоваться константа pi=3.14159. При финансовых расчетах константой может быть процентная ставка. В подобных случаях можно улучшить читаемость программы, если дать константам осмысленные имена.
В С и C++ для объявления константы перед ключевым словом (int, float или double) пишется const. К примеру:
const int iMIN=1, iSALE_PERCENTAGE=25;
const float fbase_change=32.157;
int irow_index=1,itotal=100,lobject;
double ddistance=0,dvelocity;
Определение констант через # define
В С и C++ существует другой способ описания констант: директива препроцессора #define. Предположим, в начале программы введена такая строка: #define SALES_TEAM 10
Общий формат данной строки следующий: директива #define, литерал sales_team(имя константы), литерал 10 (значение константы). Встретив такую команду, препроцессор осуществит глобальную замену в программном коде имени sales_team числом 10. Причем никакие другие значения идентификатору sales_team не могут быть присвоены, поскольку переменная с таким именем в программе формально не описана. В результате идентификатор sales_team может использоваться в программе в качестве константы. Обратите внимание, что строка с директивой #define не заканчивается точкой с запятой. После числа 10 этот символ будет воспринят как часть идентификатора, в результате чего все вхождения SALES_TEAM будут заменены литералом 10;