Базовые типы данных Visual C++
Вопросы
- 1. Какие базовые (основные) типы данных используются в языке C++?
- 2. Какие особенности использования целочисленных типов данных?
- 3. Как в программе описать переменную с именем x целого типа?
- 4. Как в переменную целого типа записать число?
- 5. Какие особенности типов данных с плавающей запятой?
- 6. Как описать переменную, которая принимает значение с плавающей запятой?
- 7. Как в переменную с плавающей запятой записать числовые значения?
- 8. Как перевести переменную типа float в тип int?
- 9. Как перевести переменную из типа int в тип double?
- 10. Какие особенности использования данных типа char (символьных данных) в программе?
- 11. Какие особенности использования данных типа bool (логический тип)?
- 12. Как определить размер памяти, который занимает переменная данного типа?
- 13. Каким образом осуществляется инициализация переменных разных типов?
- 14. Каким образом определить максимально допустимое (минимально допустимое) значение переменной определенного типа?
- 15. Какие особенности использования типа enum?
- 16. Какие особенности применения типа void в программах на C++?
- 17. Можно ли объявлять переменную типа void в программе?
- 18. Какие особенности применения типа wchar_t в Visual C++?
- 19. Какой объем памяти резервируется для описания одной переменной типа wchar_t?
- Связанные темы
1. Какие базовые (основные) типы данных используются в языке C++?
Ответ:
- Целочисельные типы данных:
short int, unsigned short int, int, unsigned int, long, unsigned long.
- Типы данных с плавающей запятой (соответствуют вещественным типам):
float, double, long double.
- Символьный тип данных:
char (signed char), unsigned char, wchar_t.
- Логический тип данных:
bool.
- Перечислимый тип данных (введен в Visual C++):
enum.
2. Какие особенности использования целочисленных типов данных?
В C++ основные целочисленные типы данных: short int, unsigned short int, int, unsigned int, long (long int), unsigned long (unsigned long int).
Эти типы данных представляют значения из множества целых чисел. Например:
2 -100 398
Типы данных, которые начинаются из приставки unsigned, могут содержать только положительные числа.
Данные типа short int, unsigned short int занимают в два раза меньше места в памяти чем данные типа int, unsigned int.
Данные типа long, unsigned long занимают в два раза больше места в памяти чем данные типа int, unsigned int.
3. Как в программе описать переменную с именем x целого типа?
Ответ:
int x; // целое со знаком
В результате под переменную x будет выделено место в памяти размером 4 байта. Размер памяти, которая выделяется под переменную зависит от характеристик компьютера, типа операционной системы и настроек компилятора.
4. Как в переменную целого типа записать число 239?
Для этого используется оператор присваивания, который обозначается символом ‘=‘.
Ответ 1. Внесение числа в переменную после ее описания.
int x;
x = 239;
Ответ 2. Внесение числа в переменную во время ее описания (начальная инициализация).
int x = 239;
5. Какие особенности типов данных с плавающей запятой?
Типы данных с плавающей запятой разрешают представлять значения из множества вещественных чисел. Например:
8.35 -990.399 239.0.
В C++ есть следующие базовые типы данных с плавающей запятой: float, double, long double.
Переменная типа double занимает в 2 раза больше места в памяти компьютера чем переменная типа float.
Так же переменная типа long double занимает в 2 раза больше места в памяти компьютера, чем переменная типа double.
6. Как описать переменную, которая принимает значение с плавающей запятой?
Пример описания переменных типа float, double, long double:
float f; double d; long double ld;
7. Как в переменную с плавающей запятой записать числовые значения?
Пример внесения числовых данных в переменные типы с плавающей запятой:
float f = -9928.45; // начальная инициализация double d; long double ld; d = 0.445332; // оператор присваивания ld = 3892923898239.030903; // оператор присваивания
8. Как перевести переменную типа float в тип int?
Для этого используется операция приведения типов. В скобках нужно указать название типа к которому происходит приведение.
Пример:
float a; int b; a = 8.457; b = (int) a; // b = 8
При использовании операций приведения типов, нужно учитывать ограничения, которые накладываются на типы, которые занимают меньше места в памяти компьютера.
Например, переменная типа short int может представлять меньший диапазон чисел, чем переменные типов float, double. В следующему листинге происходит переполнение значения в переменной типа short int:
short int i; float f; f = 3990099.8; i = (int)f; // i = -7597 - переполнение
9. Как перевести переменную из типа int в тип double?
Пример приведения с int в double:
int i; double d; i = 982; d = (double)i; // d = 982.0
10. Какие особенности использования данных типа char (символьных данных) в программе?
Данные типа char представляют символьное значение кода, введенного с клавиатуры. Код символа есть целое число.
Например, код символа ‘f’ равен значению 102.
Фрагмент кода, в котором вычисляется код символа:
int code; char symbol; symbol = 'f'; code = (int)symbol; // code = 102
Данные типа char есть теми же целыми числами. Данные типа char занимают в памяти компьютера 1 байт.
Соотношение «символ-код» размещается в таблице символов Windows. Символы с кодами от 0 до 127 – это зарезервированные символы BIOS. Они включают наиболее употребляемые символы, символы цифр, символы латинской азбуки. Эти символы изменить нельзя.
Символы с кодами от 128 до 255 – это региональные символы, которые привязанные к конкретной азбуке того компьютера на котором установленная операционная система Windows.
11. Какие особенности использования данных типа bool (логический тип)?
Переменные типа bool могут принимать только два значения:
true – истина,
false – ложь.
Эти переменные используются для проверки логических выражений. Числовое значение true равно 1. Числовое значение false равно 0.
Фрагмент кода, который определяет числовые значения true и false:
int result; bool b; result = (int)true; // result = 1 b = false; result = (int)b; // result = 0
Фрагмент кода, который превращает типы int и float в bool:
int i; float f; bool b; i = 6; b = (bool)i; // b = True f = 0.0; b = (bool)f; // b = False
12. Как определить размер памяти, который занимает переменная данного типа?
Для этого используется операция sizeof().
Фрагмент кода, который определяет размер некоторых типов данных:
int d; d = sizeof(char); // d = 1 d = sizeof(unsigned int); // d = 4 d = sizeof(float); // d = 4 d = sizeof(double); // d = 8
13. Каким образом осуществляется инициализация переменных разных типов?
int d = 28; float z = (float)2.85; char c = 'k'; String ^s = "Hello!"; double r = -8.559;
14. Каким образом определить максимально допустимое (минимально допустимое) значение переменной определенного типа?
Чтобы определить максимально допустимое или минимально допустимое значение переменной некоторого типа в библиотеке .NET Framework используются свойства MaxValue и MinValue.
Примеры определения предельных значений переменных разных типов.
Для переменных типа int:
// тип int int i; long MaxInt; long MinInt; MaxInt = (long)i.MaxValue; // MaxInt = 2147483647 MinInt = (long)i.MinValue; // MinInt = -2147483648
Для переменных типа short int:
// тип short int short int si; int MaxInt; int MinInt; MaxInt = (int)si.MaxValue; // MaxInt = 32767 MinInt = (int)si.MinValue; // MinInt = -32768
Для переменных типа unsigned int:
// тип unsigned int unsigned int ui; unsigned int MaxInt; unsigned int MinInt; MaxInt = ui.MaxValue; // MaxInt = 4294967295 MinInt = ui.MinValue; // MinInt = 0
Для переменных типа float:
// тип float float f; float MaxF; float MinF; MaxF = f.MaxValue; // MaxF = 3.402823E+38 MinF = f.MinValue; // MinF = -3.402823E+38
Для переменных типа double:
// тип double double d; double MaxD; double MinD; Max = d.MaxValue; // Max = 1.79769313486232E+308 Min = d.MinValue; // Min = -1.79769313486232E+308
Для переменных типа char:
// тип char char c; int MaxC; int MinC; Max = (int)c.MaxValue; // Max = 127 Min = (int)c.MinValue; // Min = -128
15. Какие особенности использования типа enum?
Тип enum – это перечислительный тип данных. В нем задаются мнемонические значения для множеств целых значений. Каждое мнемоническое значение имеет определенное содержание и представляется целым числом.
Пример использования типа enum для обозначения месяцев года:
enum months { January, February, March, April, May, June, July, August, September, October, November, December } mn; mn = January; // mn = 0 mn = March; // mn = 2 mn = September; // mn = 8
В приведенном примере описывается переменная с именем mn типа enum months. Мнемонические значения месяцев (January, February, …) начинаются с 0 (0, 1, 2, …). Мнемоническому значению January соответствует целое значение 0, мнемоническому значению February соответствует целое значение 1, и т.д.
Итак, с помощью типа enum, в тексте программы можно использовать мнемонические обозначения для лучшей наглядности исходного кода.
Можно написать и так:
mn = (enum months)2; // mn = March mn = (enum months)11; // mn = December
16. Какие особенности применения типа void в программах на C++?
Тип данных void используется в следующих случаях:
- если нужно описать функцию, которая не возвращает никакого значения (см. пример);
- если нужно описать функцию, которая не получает параметров (см. пример).
Пример. Функция MyFun() без параметров, которая не возвращает никакого значения (возвращает тип void) и не получает параметров.
public: void MyFun(void) { // тело функции // ... return; // возврат из функции, которая не возвращает значения } // вызов функции из программы ... MyFun(); ...
17. Можно ли объявлять переменную типа void в программе?
Нельзя, так как тип void не связан со значением.
Объявление переменной типа void приводит к ошибке компиляции с выводом сообщения:
"Illegal use of type void"
18. Какие особенности применения типа wchar_t в Visual C++?
Переменные типа char (смотрите предыдущие пункты) используются для сохранения 8-разрядных ASCII-символов.
Тип wchar_t используется для сохранения символов, которые входят в состав больших символьных наборов. Например, в китайской азбуке есть огромное количество символов. 8 разрядов недостаточно, чтобы представить весь набор символов китайской азбуки. Поэтому, если нужно использовать программу на международном рынке, целесообразно заменить тип char на wchar_t.
Пример использования типа wchar_t.
... wchar_t t; // для переменной t выделяется 2 байта памяти t = 's'; ...
19. Какой объем памяти резервируется для описания одной переменной типа wchar_t?
Одна переменная типа wchar_t занимает в памяти компьютера 2 байта (16 бит). Диапазон целочисленных значений переменных типа wchar_t составляет от 0 до 65535.
Связанные темы
- Идентификаторы, зарезервированные слова, литералы, управляющие последовательности
- Понятие переменной. Объявление переменной. Выделение памяти для переменной. Константы
- Понятие выражения. Операция присваивания. Преобразование и приведение типов