русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Типы данных

Обозначение Размер (байт) Диапазон Тип данных
char, signed char -128...127 Символьный со знаком
unsigned char 0...255 Символьный без знака
short, short int, signed short , signed short int -32768... Короткое целое со знаком
unsigned short, unsigned short int 0...65535 Короткое целое без знака
int, signed, signed int 1, 2, 4 Зависит от реализации Целое
unsigned, unsigned int 1, 2, 4 Зависит от реализации Целое без знака
long, signed long, long int -2147483648… Длинное целое со знаком
unsigned long 0...4294967295 Длинное целое без знака
float -3.4e-38... 3.14e+38 Вещественное число с плавающей точкой
double -1.7е-308..1.7е308 Вещественное число удвоенной точности
long double   -3.4e-4932... 3.4e4932 Длинное вещественное число удвоенной точности

Основные типы в C++ подразделяются на две группы: целочисленные типы и типы с плавающей точкой (для краткости их будем называть плавающими типами). Это арифметические типы.

В C++ нет жёсткого стандарта на диапазоны значений арифметических типов (в стандарте языка оговариваются лишь минимально допустимые значения). К целочисленным типам относятся типы, представленные следующими именами основных типов: char, short, int и long.

Имена целочисленных типов могут использоваться в сочетании с парой модификаторов типа: signed и unsigned.

Эти модификаторы изменяют формат представления данных, но не влияют на размеры выделяемых областей памяти.

Модификатор типа signed указывает, что переменная может принимать как положительные, так и отрицательные значения. Возможно, что при этом самый левый бит области памяти, выделяемой для хранения значения, используется для представления знака. Если этот бит установлен в 0, то значение переменной считается положительным. Если бит установлен в 1, то значение переменной считается отрицательным.

Модификатор типа unsigned указывает, что переменная принимает неотрицательные значения. При этом самый левый бит области памяти, выделяемой для хранения значения, используется так же, как и все остальные биты области памяти – для представления значения.

В ряде случаев модификаторы типа можно рассматривать как имена основных типов. Особое место среди множества основных целочисленных типов занимают перечисления, которые обозначаются ключевым словом enum. Перечисления представляют собой упорядоченные наборы целых значений. Они имеют своеобразный синтаксис и достаточно специфическую область использования. Здесь также многое зависит от реализации.

Под областью видимости и областью действия переменной понимается область программы, в которой переменная доступна для использования. Для переменной, описанной в блоке (функции), область видимости простирается от точки описания до конца блока, в котором эта переменная используется. Такая переменная называется локальной. Переменная, объявленная вне функции, называется глобальной, и область ее видимости простирается от точки ее описания до конца файла.

Внутри блока (функции) глобальное имя можно переопределять для ссылки на другой объект программы. После выхода из блока глобальное имя вновь обретает прежний статус и значение. Следует отметить, что переопределение глобальных переменных в локальные в блоках при разработке крупных программных комплексов может привести к ошибкам, которые при отладке и тестировании программы очень сложно выявить, поэтому такие переопределения стоит минимизировать.

Память под локальные переменные выделяется динамически на время выполнения функции. После завершения выполнения функции эта память будет доступна для других функций, поэтому хранящиеся в локальных переменных значения не являются неизменными при последующих вызовах этой функции. Если необходимо сохранять значение локальной переменной между вызовами функций, то ее описывают с модификатором (спецификатором) static. С языке С/С++ существуют несколько модификаторов, которые определяют область видимости и время жизни переменной, т.е. к какому классу памяти она принадлежит (табл. 3).

Таблица 3.

Модификаторы переменных

Модифи-каторы Применение Область видимости Выделение памяти Пояснения
auto Автоматическая локальная переменная Блок Временное   По умолчанию принимается для любой переменной
register Регистровая локальная Блок Временное Как правило, размещается в машинном регистре
extern Внешняя Блок   Может описываться в другом файле; видна загрузчику
static Статическая локальная переменная Блок Постоянное Область видимости соответствует локальной переменной, а время жизни - глобальной
static Статическая глобальная переменная файл Постоянное   Данная глобальная переменная недоступна другим файлам, т.е. невидна для загрузчика.
volatile Изменяющаяся переменная     Переменная может изменяться не только программой, но и например, периферийным устройством

Скалярные автоматические переменные при их описании не обнуляются. Модификатором register рекомендуется описывать часто используемые переменные. Если пользователь, не указал инициализирующее значение для внешней или глобальной переменной, то ей будет присвоено значение 0. При каждом обращении к переменной типа volatile программа заново вычисляет ее значение.

Объявление типа данных в общем виде имеет следующий формат:

[<класс памяти>] <тип><идентификатор> = < значение> ;

Примеры объявлений: static char c, b; register int x=0;

Типизированные константы описываются как:

const <тип><идентификатор> = < значение> ;

Константы языка программирования С/С++ могут иметь различный формат записи (табл. 4).

Таблица 4.

Константы языка С/С++

Константа Формат Пример
Символьная Целая     Вещественная   Строковая Символ заключенный в апострофы Десятичный Восьмеричный. Запись начинается с нуля, за которым следуют восьмеричные цифры Шестнадцатеричный. Запись начинается с 0х или 0Х, за которыми следуют шестнадцатеричные цифры Десятичный Экспоненциальный, Е – десятичное основание Совокупность символов, заключенных в кавычки ‘d’   0x12A   0.25 2.4E-2 “day”

Просмотров: 495


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.