Вы на НеОфициальном сайте факультета ЭиП

На нашем портале ежедневно выкладываются материалы способные помочь студентам. Курсовые, шпаргалки, ответы и еще куча всего что может понадобиться в учебе!
Главная Контакты Карта сайта
Где мы?
» » » Базовые типы данных. Производные или сложные типы данных.

Реклама


Базовые типы данных. Производные или сложные типы данных.

Просмотров: 3509 Автор: admin

Базовые типы данных. Производные или сложные типы данных. Понятие структура, массив, адрес, указатель.

Все данные, которые используются в С++ должны быть описаны до их использования. При описании данных им присваивается имя и тип. Существуют простые (базовые) и производные (сложные) типы данных.

БАЗОВЫЕ ТИПЫ ДАННЫХ


Данные целого типа:

int – целый знаковый (2 байта)

short – короткое целое (1 байт)

long – длинное целое (4 байта)

register – регистровая переменная, по возможности значения таких переменных помещаются в регистры ЦП (если они свободны), что значительно улучшает их обработку (используются обычно в счетчиках, циклах)

Целочисленные константы – последовательность символов в цифрах, определяющая значение (в 10-ой, 8-ой, 16-ой форме). При записи констант могут использоваться ^, которые и определяют основание константы.

Unsigned– беззнаковое. Может использоваться в качестве префикса при всех описаниях данных целого типа (напр.: unsignedshort). Unsigned означает, что старший бит внутреннего представления входит в код представляемого числового значения, которое считается в этом случае беззнаковым. Unsigned изменяет границы значений определяемого типа без изменения его мощности (количества элементов). По умолчанию, при отсутствии в качестве префикса слова unsigned любой целый тип считается знаковым (signed).

 

Данные действительного типа:

float – вещественный одинарной точности (4 байт),

double – вещественный двойной точности (8 байт).

Значения всех вещественных типов в ЭВМ представляются с плавающей точкой, т.е. с мантиссой и порядком.

Константы действительного типа – также представляются в памяти ЭВМ с плавающей точкой. Могут быть прямыми (-156.23) и показательными (44е0).

 

Данные символьного типа:

сhar – символьный (не менее 8 бит)

Константы символьного типа записываются в апострофах (symbol=‘o‘;).

 

void – пустой (2 байта): используется при необходимости нейтрализовать возвращаемое значение функции или когда тип данных заранее не известен.

 

СЛОЖНЫЕ ТИПЫ ДАННЫХ

Перечисление – данные целого типа используются для

-наложения ограничения на область определения типа

-создания ассоциаций между целочисленным значением и мнемоничным обозначением.

enum [имя перечисления] {список мнемоник} список переменных

Переменные, указанные в списке могут принимать только те значения, которые определены списком мнемоник.

 

Объединение – одна область памяти, имеющая несколько имен.

Используется для:

-общих области данных, в которую могут помещаться переменные разных типов

-экономии памяти

union [имя]{описание данных}

Например, если в описании данных указано 2 переменны: 1 – int, а другая – char, - то со значениями, записанными в эту область памяти можно работать двояко: по правилам intи char.

 

Массив – представляет собой однородную область, характеризующуюся следующими атрибутами:

1)имя

2)размер

3)размерность (количество индексов, с помощью которых можно найти элемент).

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

 

В зависимости от того, какие атрибуты массива заранее известны, выделяют 3 способа описания элементов массива.

1) Известно все.

charstring[100] – одномерный символьный массив, состоящий из 100 элементов.

2) Неизвестен размер, но известна размерность.

В этом случае в исполняемом коде необходимо предусмотреть операции распределения памяти для хранения значений. При описании количество [] будет определять размерность массива.

int table [ ][ ];

3) Неизвестен ни размер, ни размерность, а только тип.

В этом случае описание производится с помощью указателя.

int *Table; (Table– адрес, по которому хранятся данные тип int).

 

Адреса.

Имя переменной соответствует адресу того участка памяти, который для нее выделен, а значение переменной – содержимому этого участка памяти. В обычном операторе присваивания – например К=С+В – адрес переменной из левой части не доступен для программиста. Чтобы получить адрес в явном виде, в языке С применяют операцию &. Выражение &К позволяет получить адрес участка памяти, выделенного под переменную К. Операция & применима только к объектам, имеющим имя и размещенным в памяти. Получив адрес переменной, его можно сохранять, преобразовывать и передавать. Для этого в языке С введена переменная типа «указатель».

Указатель – переменная целого типа, предназначенная для хранения адреса области памяти, по которому размещаются данные описываемого типа.

Как и любую переменную, указатель должен быть определен и описан. Для этого используется знака «*». Также нужно указывать, на объект какого типа ссылается указатель (напр.: int *ts, char *str).

 

Структура – сложный тип данных, применяемый для связывания в единое целое разнородных элементов, логически относящихся к 1 объекту.

Компоненты структуры могут быть разных типов и должны иметь разные имена.

 

Формат определения структурного типа:

struct   имя_структурного_типа {определения_ элементов}; где

struct – спецификатор структурного типа (служебное слово),

имя структурного типа – идентификатор (тег), произвольно выбираемый программистом,

определения элементов – описания объектов, входящих в структуру.

Создание логических связей между данными с помощью структуры значительно упрощает исполнительный код программы. Структура позволяет конструировать сколь угодно сложные логические связи между данными, т. к. уровень вложенности не ограничен. Любая структура может выступать компонентом любой другой структуры.



Популярные новости

Статистика сайта



Rambler's Top100






 
Copyright © НеОфициальный сайт факультета ЭиП