Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Тип перечисление

Понятия области видимости идентификатора (и области действия идентификатора) имеют прямое отношение к, так называемым. пространствам имен. | Еще о классе памяти | Некоторые операции | Еще о выражениях | Кратко: for, while, do-while циклы и простые примеры |


Читайте также:
  1. Вопрос 2. Перечисление некоторых форм поклонения.
  2. Перечисление угроз

 

Перечисление – отдельный тип для пронумерованных целых значений, представляющий целые значения начиная с 0 (по умолчанию). Говоря по другому, переменная типа enum есть постоянный конечномерный целочисленный “вектор” с упорядоченными именованными компонентами, причем по умолчанию, “порядковый номер” (значение) первой компоненты равен 0, следующие номера – увеличиваются на 1. Порядковое целое значение может быть присвоено явно. Перечисление может быть идентифицировано (по выбору) теговым именем (tag name). Следующие примеры демонстрируют тип перечисление и переменные этого типа:

 

enum suit{clubs, diamonds, hearts, spades};

// clubs = 0, diamonds = 1, hearts = 2, spades = 3

suit card; // переменная типа suit

Проверьте, каков результат операции sizeof(suit)?

enum boolean {false, true, uncertain = -1} a, b; // определяет две переменные a и b

// false = 0, true = 1, uncertain = -1

enum {a = 6, b, c = 3, d = 2 * b} x, y;

// a = 6, b = 7, c = 3, d = 14

// В этом случае, без тегового имени мы не можем определить никакой

//другой переменной этого типа

 

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

 

(3) Тип Массив (“array”)

 

Массив (здесь - одномерный) может быть объявлен с заданием его размера (длины) целой константой:

 

int array [10];

const int n = 10;

char s[n];

 

Инициализация массива:

 

int int_array[ ] = {2, 5, 3, 4};

 

Когда массив инициализируется при объявлении, то размер (длина) массива в [] может быть опущен – он определится при инициализации.

Доступ к элементам массива выполняется с помощью операции индексации []. Например, int_array[2] есть элемент массива с индексом 2. Индексация массивов всегда начинается с 0.

(4) Тип Указатель (pointer)

 

Указатель – это переменная, чье значение есть адрес другой переменной (простого типа данных или агрегатного типа (структурной переменной, например), или иного объекта). Тип данных указатель специфицирует тип той переменной, на которую указатель указывает. Указатель на переменную любого типа может принимать значение NULL. Значение NULL в заголовочном файле stdlib.h определен как 0. Хотя несколько указателей могут принимать значение 0, они остаются указателями разного типа, если таковыми определены. Например, NULL-указатель на int не тоже самое, что NULL-указатель на char. Таким образом, переменная может иметь тип указатель, о котором говорят, что он имеет (в свою очередь) тип, совпадающий с типом объекта, на который он указывает.

 

На переменную, на которую указывает указатель pointername, можно сослаться написав * pointername. Это называется разыменованием указателя (dereferencing) или косвенным обращением (indirection) к соответствующей переменной.

 

Указатель может иметь тип void. Это означает, что тип указателя не специфицирован (указатель без типа).Тип указателя void может быть приведен (cast) к другим типам указателей. Разименование указателей типа void запрещено.

 


Дата добавления: 2015-11-16; просмотров: 36 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Напомним основные (предопределенные целиком или базовые, фундаментальные)типы данных| Ii) Инициализация указателей

mybiblioteka.su - 2015-2024 год. (0.006 сек.)