Студопедия

КАТЕГОРИИ:


Архитектура-(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. Основные типы данных

Тип данных Диапазон значений
char (символьный) -128…127
short (короткий целый) -32768…32767
int (целый) -32768…32767
long (длинный целый) -2147483648…2147483647
unsigned char (беззнаковый символьный) 0…255
unsigned int (беззнаковый целый) 0…65535
unsigned long (беззнаковый длинный целый) 0…4294967295
float (вещественный) 3.4Е-38…3.4Е+38
double (вещественный с удвоенной точностью) 1.7Е-308…1.7Е+308
long double (длинный вещественный с удвоенной точностью) 3.4Е-4932…3.4Е+4932

 

Приведем несколько примеров.

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 при преобразовании к целому типу, а false0. При преобразовании целочисленного значения к логическому типу 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; Просмотров: 359; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.026 сек.