logo

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

все змінні використовуйте тип даних під час оголошення, щоб обмежити тип даних, які будуть зберігатися. Тому ми можемо сказати, що типи даних використовуються для того, щоб повідомити змінним тип даних, які вони можуть зберігати. Щоразу, коли змінна визначена в C++, компілятор виділяє деяку пам’ять для цієї змінної на основі типу даних, з яким вона оголошена. Для кожного типу даних потрібен різний обсяг пам’яті.

C++ підтримує широкий спектр типів даних, і програміст може вибрати тип даних, який відповідає потребам програми. Типи даних визначають розмір і типи значень, які будуть зберігатися. Однак представлення сховища та машинні інструкції для роботи з кожним типом даних відрізняються від машини до машини, хоча інструкції C++ ідентичні на всіх машинах.

C++ підтримує такі типи даних:



  1. Первинний або Вбудований або Фундаментальний тип даних
  2. Похідні типи даних
  3. Визначені користувачем типи даних

Типи даних у C++

Типи даних у C++ в основному поділяються на 3 типи:

1. Примітивні типи даних : ці типи даних є вбудованими або попередньо визначеними типами даних і можуть використовуватися безпосередньо користувачем для оголошення змінних. приклад: int, char, float, bool тощо. Примітивні типи даних, доступні в C++:

  • Ціле число
  • характер
  • Логічний
  • Плаваюча точка
  • Подвійна плаваюча точка
  • Безцінний або порожній
  • Широкий характер

2. Похідні типи даних: функція

  • Масив
  • покажчик
  • довідка
  • 3. Абстрактні або визначені користувачем типи даних : Клас

  • Структура

  • Клас
  • Союз
  • Клас
  • Перерахування
  • Typedef визначений тип даних
  • Примітивні типи даних

      Клас
    • Ціле число : Ключове слово, яке використовується для цілочисельних типів даних внутр . Для цілих чисел зазвичай потрібно 4 байти пам’яті та діапазон від -2147483648 до 2147483647.
    • характер : Символьний тип даних використовується для зберігання символів. Для символьного типу даних використовується ключове слово char . Для символів зазвичай потрібен 1 байт пам’яті та діапазон значень від -128 до 127 або від 0 до 255.
    • Логічний : Логічний тип даних використовується для зберігання логічних або логічних значень. Булева змінна може зберігати будь-яке правда або помилковий . Ключове слово, яке використовується для типу даних Boolean: bool .
    • Плаваюча точка : Тип даних з плаваючою комою використовується для зберігання значень із плаваючою комою одинарної точності або десяткових значень. Ключове слово, яке використовується для типу даних із плаваючою комою, таке плавати . Змінні типу Float зазвичай вимагають 4 байти пам’яті.
    • Подвійна плаваюча точка : Тип даних Double Floating Point використовується для зберігання значень із плаваючою комою подвійної точності або десяткових значень. Ключове слово, яке використовується для типу даних із подвійною плаваючою комою, таке подвійний . Подвійні змінні зазвичай вимагають 8 байт пам'яті.
    • недійсний : Пустота означає без будь-якої цінності. тип даних void представляє сутність без значення. Тип даних void використовується для тих функцій, які не повертають значення.
    • Клас
    • Широкий характер : Широкий характер Тип даних також є символьним типом даних, але цей тип даних має розмір, більший за звичайний 8-бітний тип даних. В особі wchar_t . Зазвичай він має довжину 2 або 4 байти.
    • оператор sizeof(): оператор sizeof(). використовується для визначення кількості байтів, зайнятих змінною/типом даних у пам’яті комп’ютера.

    приклад:

    int m, x[50];

    cout<

    cout<

    Розмір змінних може відрізнятися від показаних у таблиці вище, залежно від компілятора та комп’ютера, який ви використовуєте.

    C++




    // C++ Program to Demonstrate the correct size> // of various data types on your computer.> #include> using> namespace> std;> int> main()> {> >cout <<>'Size of char : '> <<>sizeof>(>char>) << endl;> >cout <<>'Size of int : '> <<>sizeof>(>int>) << endl;> >cout <<>'Size of long : '> <<>sizeof>(>long>) << endl;> >cout <<>'Size of float : '> <<>sizeof>(>float>) << endl;> >cout <<>'Size of double : '> <<>sizeof>(>double>) << endl;> >return> 0;> }>

    >

    >

    Вихід

    Size of char : 1 Size of int : 4 Size of long : 8 Size of float : 4 Size of double : 8>

    Часова складність: О(1)

    Космічна складність: О(1)

    Модифікатори типу даних

    Як випливає з назви, модифікатори типу даних використовуються з вбудованими типами даних для зміни довжини даних, які може містити певний тип даних.

    Модифікатори в C++

    У C++ є такі модифікатори типу даних:

    • Підписано
    • Без підпису
    • Короткий
    • Довго

    У таблиці нижче підсумовано змінений розмір і діапазон вбудованих типів даних у поєднанні з модифікаторами типів:

    Тип даних

    Розмір (у байтах)

    Діапазон

    короткий міжн

    2

    -32 768 до 32 767

    беззнаковий короткий міжн

    2

    від 0 до 65 535

    unsigned int

    4

    0 до 4 294 967 295

    внутр

    4

    -2 147 483 648 до 2 147 483 647

    бінарне дерево java

    довгий внутр

    4

    -2 147 483 648 до 2 147 483 647

    unsigned long int

    4

    0 до 4 294 967 295

    довгий довгий внутр

    8

    -(2^63) до (2^63)-1

    unsigned long long int

    8

    0 до 18,446,744,073,709,551,615

    підписаний символ

    1

    -128 до 127

    беззнаковий символ

    1

    від 0 до 255

    плавати

    4

    -3,4×10^38 до 3,4×10^38

    подвійний

    8

    -1,7×10^308 до1,7×10^308

    довгий подвійний

    12

    -1,1×10^4932 до 1,1×10^4932

    wchar_t

    2 або 4

    1 широкий символ

    Примітка : наведені вище значення можуть відрізнятися від компілятора до компілятора. У наведеному вище прикладі ми розглядали GCC 32 bit.
    Ми можемо відобразити розмір усіх типів даних, використовуючи оператор sizeof() і передаючи ключове слово типу даних як аргумент цієї функції, як показано нижче:

    Тепер, щоб отримати діапазон типів даних, зверніться до наступної діаграми

    Примітка: синтаксис файл заголовка визначається для пошуку діапазону фундаментальних типів даних. Беззнакові модифікатори мають мінімальне значення нуль. Отже, макроконстанти не визначені для мінімального значення без знаку.

    Макроконстанти

    Ім'я

    Експресує

    CHAR_MIN

    Мінімальне значення для об’єкта типу char

    CHAR_MAX

    Максимальне значення для об’єкта типу char

    SCHAR_MIN

    Мінімальне значення для об’єкта типу Signed char

    SCHAR_MAX

    Максимальне значення для об’єкта типу Signed char

    FLIGHT_MAX

    Максимальне значення для об’єкта типу Unsigned char

    CHAR_BIT

    Кількість бітів в об'єкті char

    MB_LEN_MAX

    Максимальна кількість байтів у багатобайтовому символі

    SHRT_MIN

    Мінімальне значення для об’єкта типу short int

    SHRT_MAX

    Максимальне значення для об’єкта типу short int

    USHRT_MAX

    Максимальне значення для об'єкта типу Unsigned short int

    INT_MIN

    Мінімальне значення для об'єкта типу int

    INT_MAX

    Максимальне значення для об'єкта типу int

    UINT_MAX

    Максимальне значення для об'єкта типу Unsigned int

    LONG_MIN

    Мінімальне значення для об’єкта типу long int

    LONG_MAX

    Максимальне значення для об’єкта типу long int

    HEAD_MAX

    Максимальне значення для об’єкта типу Unsigned long int

    SHIP_MIN

    Мінімальне значення для об’єкта типу long long int

    LLONG_MAX

    Максимальне значення для об’єкта типу long long int

    ULLONG_MAX

    Максимальне значення для об’єкта типу Unsigned long long int

    Фактичне значення залежить від конкретної системи та реалізації бібліотеки, але має відображати обмеження цих типів у цільовій платформі. LLONG_MIN, LLONG_MAX і ULLONG_MAX визначено для бібліотек, які відповідають стандарту C 1999 року або новішого (що включає лише стандарт C++ з 2011 року: C++11).

    Програма C++ для пошуку діапазону типів даних за допомогою макроконстант

    приклад:

    C++




    // C++ program to Demonstrate the sizes of data types> #include> #include> using> namespace> std;> int> main()> {> >cout <<>'Size of char : '> <<>sizeof>(>char>) <<>' byte'> ><< endl;> >cout <<>'char minimum value: '> << CHAR_MIN << endl;> >cout <<>'char maximum value: '> << CHAR_MAX << endl;> >cout <<>'Size of int : '> <<>sizeof>(>int>) <<>' bytes'> ><< endl;> >cout <<>'Size of short int : '> <<>sizeof>(>short> int>)> ><<>' bytes'> << endl;> >cout <<>'Size of long int : '> <<>sizeof>(>long> int>)> ><<>' bytes'> << endl;> >cout <<>'Size of signed long int : '> ><<>sizeof>(>signed> long> int>) <<>' bytes'> << endl;> >cout <<>'Size of unsigned long int : '> ><<>sizeof>(unsigned>long> int>) <<>' bytes'> << endl;> >cout <<>'Size of float : '> <<>sizeof>(>float>) <<>' bytes'> ><< endl;> >cout <<>'Size of double : '> <<>sizeof>(>double>)> ><<>' bytes'> << endl;> >cout <<>'Size of wchar_t : '> <<>sizeof>(>wchar_t>)> ><<>' bytes'> << endl;> >return> 0;> }>

    >

    >

    Вихід

    Size of char : 1 byte char minimum value: -128 char maximum value: 127 Size of int : 4 bytes Size of short int : 2 bytes Size of long int : 8 bytes Size of signed long int : 8 bytes Size of unsigned long int : 8 bytes Size of float : 4 bytes Size of double : 8 bytes Size of wchar_t : 4 bytes>

    Часова складність: O(1)

    Космічна складність: О(1)

    C++




    #include> #include> using> namespace> std;> int> main() {> >// Integer data types> >int> a = 10;> >short> b = 20;> >long> c = 30;> >long> long> d = 40;> >cout <<>'Integer data types: '> << endl;> >cout <<>'int: '> << a << endl;> >cout <<>'short: '> << b << endl;> >cout <<>'long: '> << c << endl;> >cout <<>'long long: '> << d << endl;> > >// Floating-point data types> >float> e = 3.14f;> >double> f = 3.141592;> >long> double> g = 3.14159265358979L;> >cout <<>'Floating-point data types: '> << endl;> >cout <<>'float: '> << e << endl;> >cout <<>'double: '> << f << endl;> >cout <<>'long double: '> << g << endl;> > >// Character data types> >char> h =>'a'>;> >wchar_t> i = L>'b'>;> >char16_t j = u>'c'>;> >char32_t k = U>'d'>;> >cout <<>'Character data types: '> << endl;> >cout <<>'char: '> << h << endl;> >wcout <<>'wchar_t: '> << i << endl;> >cout <<>'char16_t: '> << j << endl;> >cout <<>'char32_t: '> << k << endl;> > >// Boolean data type> >bool> l =>true>;> >bool> m =>false>;> >cout <<>'Boolean data type: '> << endl;> >cout <<>'true: '> << l << endl;> >cout <<>'false: '> << m << endl;> > >// String data type> >string n =>'Hello, world!'>;> >cout <<>'String data type: '> << endl;> >cout << n << endl;> > >return> 0;> }>

    >

    >

    Вихід

    Integer data types: int: 10 short: 20 long: 30 long long: 40 Floating-point data types: float: 3.14 double: 3.14159 long double: 3.14159 Character data types: char: a wchar_t: b char16_t: 99 char32_t: 100 Boolean data type: true: 1 false: 0 String data type: Hello, world!>

    Ця програма оголошує змінні різних типів даних, присвоює їм значення, а потім друкує їх значення.

    Цілочисельні типи даних включають int, short, long і long long. Ці типи даних представляють цілі числа різного розміру.

    Типи даних із плаваючою комою включають float, double і long double. Ці типи даних представляють дійсні числа з різними рівнями точності.

    Символьні типи даних включають char, wchar_t, char16_t і char32_t. Ці типи даних представляють окремі символи різного розміру.

    Логічний тип даних — це простий тип даних, який може мати лише одне з двох значень: істинне або хибне.

    Рядковий тип даних — це послідовність символів. У цій програмі ми використовуємо клас string для оголошення рядкової змінної та присвоєння їй значення.

    Переваги :

    Типи даних надають спосіб класифікувати та впорядковувати дані в програмі, полегшуючи їх розуміння та керування.
    Кожен тип даних має певний діапазон значень, які він може зберігати, що дозволяє точніше контролювати тип даних, що зберігаються.
    Типи даних допомагають запобігти помилкам і помилкам у програмі, встановлюючи суворі правила щодо того, як можна використовувати та маніпулювати даними.
    C++ надає широкий діапазон типів даних, що дозволяє розробникам вибрати найкращий тип для конкретного завдання.

    Недоліки :

    Використання неправильного типу даних може призвести до неочікуваної поведінки та помилок у програмі.
    Деякі типи даних, такі як довгі подвійні дані або масиви символів, можуть займати великий обсяг пам’яті та впливати на продуктивність, якщо їх надмірно використовувати.
    Складна система типів C++ може ускладнити початківцям вивчення та ефективне використання мови.
    Використання типів даних може додати програмі додаткову складність і багатослівність, ускладнюючи її читання та розуміння.