Базовые типы данных Visual C++

Базовые типы данных Visual C++

 


Вопросы



1. Какие базовые (основные) типы данных используются в языке C++?

Ответ:
  1. Целочисельные типы данных:

short int, unsigned short int, int, unsigned int, long, unsigned long.

  1. Типы данных с плавающей запятой (соответствуют вещественным типам):

float, double, long double.

  1. Символьный тип данных:

char (signed char), unsigned char, wchar_t.

  1. Логический тип данных:

bool.

  1. Перечислимый тип данных (введен в 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.


Связанные темы