шаблоны сайт визитка joomla
Скачать шаблоны Joomla 3.5 бесплатно
Вы находитесь здесь:Главная»Учебные материалы»C ++»C++. Типы данных и их преобразование

C++. Типы данных и их преобразование

Типы данных в C++

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

  • char — символьный;
  • int — целый;
  • float — вещественный (с плавающей точкой);
  • double — двойной точности;
  • bool — логический;

Для формирования других типов данных используют основные и так называемыеспецификаторы. В C++ определенны четыре спецификатора типов данных:

  • short — короткий;
  • long — длинный;
  • signed — знаковый;
  • unsigned — беззнаковый.

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

const int var;

Символьный тип

Данные типа char в памяти компьютера всегда занимают 1 байт. Символьный тип может быть со знаком или без него. В величинах со знаком signed char можно хранить значение от -128 до 127. Соответственно значения переменных типаunsigned char могут находиться в диапазоне от 0 до 255. При работе с символьными данными нужно помнить, что если в выражении встречается одиночный символ, то он должен быть заключен в одинарные кавычки (‘a’).

Целочисленный тип

Переменная типа int в памяти компьютера может занимать либо 2, либо 4 байта. Это зависит разрядности процессора. По умолчанию все целые типы считаются знаковыми, то есть спецификатор signed можно не указывать. Спецификаторunsigned позволяетпредставлять только положительные числа. Ниже представлены некоторые диапазоны значений целого типа

 

Тип Диапазон Размер
int -2147483648…2147483647 4 байта
unsigned int 0…4294967295 4 байта
signed int -2147483648…2147483647 4 байта
short int -32768…32767 2 байта
long int -2147483648…2147483647 4 байта
unsigned short int 0…65535 2 байта

Вещественный тип

Число с плавающей точкой представлено в форме mE +- p, где m — мантисса (целое или дробное число с десятичной точкой), p — порядок (целое число). Обычно величины типа float занимают 4 байта, а double 8 байт. Таблица диапазонов значений вещественного типа:

float 3,4E-38…3,4E+38 4 байта
double 1,7E-308…1,7E+308 8 байт
long double 3,4E-4932…3,4E+4932 8 байт

Логический тип

Переменная типа bool может принимать только два значения true (истина) или fasle (ложь). Любоезначение, не равное нулю, интерпретируется как true. Значениеfalse представлено в памяти как 0.

Тип void

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

 

Преобразование типов данных

В C++ различают два вида преобразования типов данных: явное и неявное.

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

1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int i=5; float f=10.12;
cout<<i/f;
system("pause>>void");
return 0;
}

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

2. Явное преобразование в отличие от неявного осуществляется программистом. Существует несколько способов такого преобразования:

  • Преобразование в стили C: (float) a
  • Преобразование в стили C++: float()

Также приведения типов может осуществляться при помощи следующих операций:

1
2
3
4
static_cast <> ()
const_cast <> ()
reinterpret_cast <> ()
dynamic_cast <> ()

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

Тип static_cast <Тип> (объект);

С помощью static_cast нельзя убрать константность у переменной, но это по силам следующему оператору. 

const_cast — применяется только тогда, когда нужно снять константность у объекта. Синтаксис будет выглядеть следующим образом:

Тип const_cast <Тип> (объект);

reinterpret_cast - применяется для преобразования указателей разных типов, целых к указателю и наоборот. Если вы увидели новое слово «указатель» — не пугайтесь! это тоже тип данных, но работать с ним Мы будем не скоро. Синтаксис тут такой же как, у ранее рассмотренных операторах:

Тип reinterpret_cast <Тип> (объект);

dynamic_cast — используется для динамического преобразования типов, реализует приведение указателей или ссылок. Синтаксис:

Тип dynamic_cast <Тип> (объект);

Управляющие символы в C++

С некоторыми из этих самых «управляющих символов» Вы уже знакомы (например, с \n). Все они начинаются с обратного «слеша», а также обрамляются двойными кавычками.

Изображение Шестнадцатеричный код Наименование
\a 7 Звуковой сигнал бипера
\b 8 Возврат на шаг
\f С Перевод страницы (формата)
\n А Перевод строки
\r D Возврат каретки
\t 9 Горизонтальная табуляция
\v В Вертикальная табуляция
\\ Обратная косая черта
\’ 27 Апостроф
22 Кавычка
\? 3F Вопросительный знак
\0ddd Восьмеричный код символа
\0xddd ddd Шестнадцатеричный код символа

Управляющие символы, которые кстати можно встретить под названиям «escape-последовательности», в основном используются для отображения символов, не имеющих визуального эффекта.

 

Похожие материалы (по тегу)

Другие материалы в этой категории: C++. Первая программа. Hello, world! »

Новости о нас

Не без помощи родительской бдительности результаты голосования подсчитывались на момент 8 декабря в 12:00 суммированием количества лайков и количества голосов, отданных в технопарке.  Подробнее
1 декабря более 50 наставников со всей республики собрались в нашем технопарке на... Подробнее
Участие приняло 180 детей, среди которых выявлены лучшие - победители отбора. Смотрите результаты... Подробнее
КАЖДУЮ ПЯТНИЦУ - бесплатное занятие по 3D-моделированию с 16:40 до 18:10. Только для учащихся... Подробнее
 Региональный отборочный фестиваль "Робофест-Стерлитамак 2018" состоится 25-26 января в г.... Подробнее

Наши партнеры

 TZOyoOCZ8y0 logotip novy SF BashGU  utv logo  CityMoll  VolnoeDelo