КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Переменные. Основные типы данных
Любая программа, суть которой не есть вывод на экран некоторой текстовой информации, содержит описание переменных. Переменная - это пара “имя” - “значение”. Имени соответствует адрес участка памяти, выделенной переменной, а значением является содержимое этого участка. Именем переменной служит идентификатор. В С++ идентификатор - это последовательность из букв латинского алфавита, десятичных цифр и символов подчеркивания, начинающаяся не с цифры. Прописные и строчные буквы различаются. Примеры идентификаторов: i, i2, i_2, stroka, STROKA, F_I_O. На длину различаемой части идентификатора конкретные реализации компилятора накладывают свои собственные ограничения. Например, компилятор фирмы Borland различают не более 32-х первых символов любого идентификатора. Каждая переменная и каждое выражение в программе имеет тип, определяющий операции, которые могут над ними производиться. Все типы языка С++ делят на основные и производные. Переменные типизируются с помощью описаний. Для описания переменных основных типов используют ключевые слова, содержащиеся в таблице 2. Описание переменных заданного типа имеет следующий формат: тип имя1 [иницал._выражение1], имя2 [иницал._выражение2],…; где тип – один из основных типов (таблица 2); имя – идентификатор; инициал._выражение – необязательный инициализатор, определяющий начальное значение соответствующего объекта. Синтаксис инициализатора переменной: = инициал._выражение либо (инициал._выражение).
Таблица 2. Основные типы данных
Приведем несколько примеров. int i,j,k,n=10; // Определены целые переменные i,j,k,n и только n //инициализирована значением 10; char simbol1= ‘\n’;// Определена символьная переменная simbol1 co // значением ‘\n’ double pi=3,1415926535897932385; // Определена вещественная //переменная pi с удвоенной точностью co //значением 3,1415926535897932385 К основному типу можно применять спецификатор const. Это дает тип, имеющий те же свойства, что и исходный тип, за исключением того, что значение переменных типа const не может изменяться после инициализации. Например, const float pi = 3,14; const char plus = '+'; В данном случае говорят, что описаны константы. Символ, заключенный в одинарные кавычки, является символьной константой. Константа должна инициализироваться при описании. Для переменных инициализация необязательна, но настоятельно рекомендуется. Оснований для введения локальной переменной без ее инициализации очень немного. Кроме типов, приведенных в таблице 2, к основным типам относят логический тип bool, перечислимый тип enum и тип void (отсутствие значения). Логические переменные (типа bool) могут принимать одно из двух значений: истина (true) или ложь (false). Логические переменные используются для выражения результатов логических операций. Например, bool b1=a==b; //= означает присваивание, == проверка равенства Если а и b имеют одинаковые значения, то b1 будет равно true, в противном случае – false. По определению true имеет значение 1 при преобразовании к целому типу, а false ‑ 0. При преобразовании целочисленного значения к логическому типу 0 преобразуется в false, а число, отличное от нуля – в true. Перечислимый тип, который вводится с помощью служебного слова enum, по существу описывает целые константы (типа int), которым приписаны уникальные и удобные для использования имена. Например, enum {one=1,two=2,three=3}; Здесь one, two, three – произвольным образом выбранные программистом идентификаторы для обозначения констант 1,2,3. После такого определения в программе наряду, например, с константой 2 можно использовать ее обозначение two. Если в определении перечислимых констант опустить знаки “=” и не указывать числовых значений, то они будут присваиваться идентификаторам по умолчанию следующим образом: самый левый в фигурных скобках идентификатор получит значение 0, а каждый последующий увеличивается на 1. Имена перечислимых констант должны быть уникальными, однако к значениям констант это не относится. Одно значение могут иметь разные константы. Для перечислимых констант можно ввести имя типа, соответствующего приведенному списку констант, например, определение enum week {sunday, monday, tuesday, wednesday, thursday, friday, saturday}; не только определяет константы Sunday==0, Monday==1,…, но и вводит перечислимый тип с именем week, который может в дальнейшем использоваться в определениях и описаниях других типов. Тип void можно использовать только для определений некоторых производных типов. Объектов типа void не существует, то есть описание void i; недопустимо. Из основных типов с помощью операций *, &, [], () и механизмов определения структурированных типов (классов, структур, объединений) можно конструировать множество производных типов. Приведем несколько примеров: int ar [5]; - массив, состоящий из пяти объектов типа int, доступ к которым обеспечивают индексированные переменные ar[0], ar[1], ar[2] ar[3], ar[4]; char t[]= “текст”; – массив, состоящий из пяти объектов типа char; void a1 (double); – функция, не возвращающая никакого значения и имеющая аргумент типа double; char *a2; – указатель на объекты типа char (значением указателей являются адреса участков памяти, выделенных для объектов конкретного типа); long a3; long &a4=a3; – инициализированная ссылка на объект типа long; int *a5[];– массив указателей на объекты типа int; int (*a5)[]; – указатель на массив объектов типа int. Обратите внимание, что строка может быть описана как массив типа char. Подробно назначение и синтаксис таких типов данных как указатели, массивы, ссылки, структуры данных и классы будет описаны в следующих главах пособия. Кроме того, используя спецификатор typedef,можно вводить в программе удобные обозначения для сложных описаний типов. Например, typedef unsigned char UC; UC simbol; Здесь вводится новый тип UC и переменная этого типа simbol, значениями которой являются беззнаковые числа в диапазоне от 0 до 255. Для определения размера (в байтах) области памяти, выделяемой для переменной определенного типа, в С++ используется операция sizeof. Разрешены два формата операции sizeof (имя_переменной) или sizeof (тип данных). Например, пусть определена переменная int i. Тогда операция sizeof(i) определит, сколько байт выделено для переменой i. Соотношение между основными типами можно записать так: 1==sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <=sizeof(float) <= sizeof(double) Каждый, описанный в программе объект (в частности, переменная), имеет следующие основные характеристики: - область действия идентификатора – эта та часть программы, в которой идентификатор может быть использован для доступа к связанному с ним объекту (обычно имя переменной действует с места ее определения и до конца блока {}, в котором она была определена); - видимость объекта (данное понятие необходимо в связи с возможностью повторных определений идентификатора внутри вложенных блоков); - продолжительность существования, которая определяет период, в течение которого идентификаторам в программе соответствуют конкретные объекты в памяти. Определены три вида продолжительности: статическая, локальная и динамическая; - класс памяти – определяет размещение объекта в памяти и продолжительность его существования.
Дата добавления: 2014-12-27; Просмотров: 381; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |