Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Указатели

Перечисления

 

Перечисления (enumerated) – это тип данных, заданный списком принадлежащих ему значений, выраженных символическими именами и представляющих целочисленные константы.

Формат описания перечисления имеет вид:

enum <имя_перечислимого_типа>

{

<Список_значений>

};

 

Например.

enum spectrum {red, orange, yellow, green, blue, violet};enum spectrum color;

 

Здесь, spectrum можно использовать в качестве имени типа, а color переменная этого типа. Идентификаторы, заключенные в фигурные скобки, перечисляют возможные значения, которые может принимать переменная spectrum. Соответственно, возможными значениями color являются red, orange, yellow и т. д. Все эти возможные значения являются целочисленными, т.е. 0, 1, 2, 3, 4, 5. Другими словами, значения в перечислении (enum) начинаются с 0, и всегда увеличиваются на 1.

Замечание.

1) Назначение перечислимых типов заключается в том, чтобы повысить удобочитаемость программы.

2) К перечисляемой переменной color можно применять операции инкрементирования "++" и декрементирования "– –". Например,

 

printf(“Значения переменной color:\n”);

for (color = red; color <= violet; color++){ printf (“%4d”,color);};

Здесь, на экран после фразы Значения переменной color: с новой строки будут выведены числа 0, 1, 2, 3, 4, 5.

3) Можно изменить присвоенные по умолчанию значения перечисления (0, 1, 2 и т. д.). Например:

enum levels {low = 100, medium = 500, high = 2000};

enum feline {cat, dog = 10, ponny, tiger};

В этом случае cat (кошка) получает значение 0 по умолчанию, dog (собака), ponny (пони), tiger (тигр), соответственно, получают значения 10, 11, 12, т.к. если назначить конкретное значение одной из констант, то все следующие константы будут пронумерованы последовательно в возрастающем порядке.

Указателем на объект называется переменная, которая содержит значение адреса элемента памяти, в котором хранится значение другой переменной. Различают три типа указателя: указатель на объект, указатель на функцию и указатель на void. Рассмотрим сначала указатель на объект, как наиболее распространенный.

Формат описания указателя на объект имеет вид:

 

<тип> *<имя_типа>;

 

где <тип> - любой скалярный тип и некоторые структурированные (массивы, структуры, объединения, перечисления), кроме ссылки (&) и битового поля. При этом <тип> может быть объявлен, или не определен, т.е. в структуре, например, может присутствовать указатель на структуру того же типа (используется в стеках, списках, очередях).

Звездочка относится непосредственно к <имени_типа>, т.е. перед именем динамической переменной необходимо ставить (*).

Например, в операторе

int *a, b, *c;

описываются два указателя на целое с именами а и с, а также целая переменная b.

Указатели чаще всего используют при работе с динамической памятью, называемой «кучей» (перевод с английского языка слова heap). Это свободная память, в которой можно во время выполнения программы выделять место под объекты в соответствии с потребностями. Доступ к выделенным участкам динамической памяти, называемыми динамическими переменными, производится только через указатели. Время жизни динамических переменных — от точки создания до конца программы или до явного освобождения памяти. В C++ используется два способа работы с динамической памятью. Первый использует семейство функций malloc и достался в наследство от С, второй использует операции new и delete.

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

 

<== предыдущая лекция | следующая лекция ==>
Инициализация объединения | Инициализация указателей
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 310; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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