1.Типы данных Как вы наверное знаете, основная цель любой программы программы состоит в обработке данных. Эти данные могут иметь числовое значение, символьное, строковое и т.д. Данные различного типа хранятся и обрабатываются по разному. Следовательно каждая константа, переменная, результат вычисления выражения или функции должны иметь определенный тип. И так, тип данных определяет:
а) Внутренне представление данных в памяти компьютера(например размер информации)
б) Множество значений, которые могут принимать величины этого типа
в) Операции и функции, которые можно применить к величинам этого типа(например, из числа можно выделить квадратный корень, а из строки или символа - нет)
Все типы данных в С++ можно разделить на основные и составные. Основные типы данных часто называют арифметическими, посколько их можно использовать в арифметических операциях:
- Int (целый)
- Char (символьный)
- Wchar_t (расширенный символьный)
- Bool (логический)
- Float (вещественный)
- Double (вещественный с двойной точностью)
Первые четыре типа называются целочисленными, последние два - типы с плавающей запятой.
Также существует четыре спецификатора типа, которе уточняют внутреннее представление и диапазон значений стандартных типов:
- Short (короткий)
- Long (длинный)
- Signed (знаковый)
- Unsigned (буззнаковый)
Теперь о каждом типе отдельно.
Целый тип(int)
Размер типа int зависит от компьютера и компилятора. Для 16-ти разрядного процессора отводится 2 байта, а для 32-х разрядного - 4 байта. Спецификатор Short перед int, говорит, что под число требуется 2 байта независимо от разрядности процессора. Спецификатор Long наоборот - 4 байта. Следовательно в 16-ти разрядном компьютере Int и Short Int одно и тоже, а в 32-х разрядном Int и Long Int. Спецификатор Signed говорит, что число может как роложительным, так и отрицательным(если просто задать тип Int, то спецификатор Signed можно опустить). Старший бит в этом чиле будет либо 0, если число положительное, либо 1, если отрицательное. Спецификатор Unsigned предоставляет нам только множество положительных чисел.
Типы Sort Int, Long Int, Signed Int, Unsigned Int можно сокращать до Short, Long, Signed, Unsighen соответсвенно.
Символьный тип(char)
Под величину одного символа отводится 1 байт. Тип char тоже имеет знак, т.е он может Signed и Unsigned.
Расширенный символьный тип(wchar_t)
Он предназначен для работы с набором символов, для кодировки котjрых недостаточно 1 байта, например Unicod. Строковые константы типа Wchar_t записываются с префиксом L, например L"Hard_tech.ru".
Логический тип(bool)
Он может принимать значения true или false либо 1 или 0 соответственно. Используется в операторах, где проверяется какое-то условие(в основном).
Типы с плавающей запятой(float,double,long double)
Они хранятся в памяти иначе, чем целочисленные типы. Внутренне представление вещественного типа состоитиз двух частей - мантиссы и порядка.
Тип Float занимает 4 байта, из которых один двоичный разряд(или бит, как вам удобно) отводится под знак манитиссы, 8 разрядов под порядок и 28 под мантиссу. Мантисса - это число больше 1.0, но меньше 2.0.
Тип Double занимает 8 байт, где под порядок и мантиссу отводится 11 и 52 раздряда соответственно.
Спецификатор Long перед типом Double означает, что под величину отводится 10 байт.
Советую скачать приложение, т.к. в ней есть таблица дипазонов типов и их размер.
Для написания переносных приложений на различные платформы нельзя делать предположений о размере Int. Для его получения можно, даже нужно пользоваться операцией Sizeof, результатом которой является размер типа в байтах.
Последний тип, тип Void
Он также относится к основным типам, но множество его значений пусто. Он используется для определения функций, которые не возвращают значения, для указатения пустого списка аргументов функции, как базовый тип для указателей и в операции приведения типов. Но обо ввсем это будет написанно в последующих статьях.
В принципе с самым сложным в С++ ма закончили(по крайней мере, для меня это было сложно, и я перечитывал это всен есколько раз). Дальше будет немножечко легче. На ледующем уроке мв напишем свою первую программу, выводящую сообщение "Hello Hard-Tech.ru"))))), познакомимся с переменными и поэксперементируем с операцией Sizeof))))
До новых встреч. Все вопросы писать либо в личку, либо в комменты, чтобы все могли видеть этот вопрос и ответ, либо на мыло.