Основні типи даних 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. Як визначити розмір того чи іншого типу в C++?

Для цього використовується операція 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;
MaxD = d.MaxValue; // MaxD = 1.79769313486232E+308
MinD = d.MinValue; // MinD = -1.79769313486232E+308

Для змінних типу char:

// тип char
char c;
int MaxC;
int MinC;
MaxC = (int)c.MaxValue; // MaxC =  127
MinC = (int)c.MinValue; // MinC = -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.


Зв’язані теми