Predefiniowane typy danych

Predefiniowane typy danych w C++ to typy danych, które są wbudowane w język i dostępne do użytku bez potrzeby ich definicji przez programistę. Te typy obejmują zarówno proste typy danych, takie jak typy całkowite, zmiennoprzecinkowe, znakowe i logiczne, które omówiliśmy wcześniej, jak i specjalny typ void. Są one „predefiniowane”, ponieważ ich specyfikacja jest już określona przez standard języka C++, co oznacza, że kompilator zna ich rozmiar, zakres i sposób przechowywania w pamięci.

Deklaracja i inicjalizacja zmiennych
  • Deklaracja zmiennej polega na określeniu typu zmiennej i jej nazwy w programie. Deklaracja informuje kompilator o tym, że dana zmienna istnieje, jaki ma typ i w rezultacie, jak dużo miejsca w pamięci należy dla niej zarezerwować. Przykład deklaracji zmiennej: int liczba;
  • Inicjalizacja zmiennej to proces przypisania wartości do zmiennej w momencie jej deklaracji lub po niej. Inicjalizacja zapewnia, że zmienna ma określoną wartość przed jej pierwszym użyciem. Przykłady inicjalizacji zmiennej:
    • Podczas deklaracji: int liczba = 5;
    • Po deklaracji: liczba = 5;
Alias typu (Alias nazw predefiniowanych typów danych)

C++ umożliwia tworzenie aliasów dla typów danych, co pozwala na zastąpienie predefiniowanych lub złożonych typów danych bardziej zrozumiałymi lub krótszymi nazwami. Istnieją dwa główne sposoby definiowania aliasów typów w C++:

  • Słowo kluczowe typedef służy do tworzenia nowej nazwy (aliasu) dla istniejącego typu danych. Na przykład:
typedef unsigned long ulong;
  • Powyższy kod tworzy alias ulong dla typu unsigned long, co pozwala używać ulong zamiast pełnej nazwy typu w kodzie.
  • Od standardu C++11 można również użyć konstrukcji using do tworzenia aliasów typów, co jest bardziej elastyczne i zalecane w nowszych projektach. Przykład:
using uint = unsigned int;
  • Ten kod tworzy alias uint dla typu unsigned int.

Aliasowanie jest szczególnie użyteczne przy pracy z typami złożonymi, takimi jak szablony, ponieważ pozwala na uproszczenie i zwiększenie czytelności kodu.

Podsumowując, predefiniowane typy danych w C++ to fundamenty, na których opiera się programowanie w tym języku. Deklaracja i inicjalizacja zmiennych to kluczowe koncepcje, które pozwalają na efektywne zarządzanie pamięcią i danymi w programie. Alias typu to zaś narzędzie, które dodatkowo zwiększa czytelność i elastyczność kodu, umożliwiając programistom lepszą organizację i strukturę ich programów.

Typ danych w programowaniu definiuje zbiór wartości, które zmienna może przechowywać, oraz zbiór operacji, które można na tych danych wykonać. W C++, typy danych pozwalają programiście precyzyjnie kontrolować rodzaje informacji, które mogą być przechowywane w pamięci komputera, oraz sposób ich interpretacji przez kompilator. Typy całkowite

Wprowadzenie do typów danych w C++
  • int: Jest to najczęściej używany typ całkowity, który może przechowywać liczby całkowite (zarówno dodatnie, jak i ujemne). Rozmiar int zależy od systemu, ale zazwyczaj wynosi 4 bajty (32 bity), co pozwala na przechowywanie wartości od -2,147,483,648 do 2,147,483,647.
  • short: Mały typ całkowity, zwykle zajmujący 2 bajty, co ogranicza jego zakres wartości. Używany, gdy wiadomo, że zmienne nie będą przechowywać dużych liczb.
  • long: Rozszerzony typ całkowity, zazwyczaj 4 lub 8 bajtów, używany do przechowywania większych wartości całkowitych.
  • long long: Jeszcze większy typ całkowity, zazwyczaj 8 bajtów, pozwalający na przechowywanie bardzo dużych wartości całkowitych.
  • unsigned: Modyfikator typu, który może być używany z typami całkowitymi, eliminujący możliwość przechowywania wartości ujemnych, co podwaja zakres dostępnych wartości dodatnich.
3. Typy zmienno-przecinkowe
  • float: Typ zmiennoprzecinkowy o pojedynczej precyzji, który może przechowywać liczby z częścią dziesiętną. Przyjmuje 4 bajty i jest używany, gdy wymagana jest mniejsza dokładność.
  • double: Typ zmiennoprzecinkowy o podwójnej precyzji, zapewniający większą dokładność niż float i zajmujący 8 bajtów. Jest to domyślny wybór dla operacji zmiennoprzecinkowych.
  • long double: Zapewnia jeszcze większą precyzję niż double, ale jego rozmiar i dokładność mogą się różnić w zależności od kompilatora i platformy.
4. Typy znakowe
  • char: Podstawowy typ danych do przechowywania pojedynczych znaków (liter, cyfr, symboli). Zajmuje 1 bajt i może przechowywać wartości z tablicy ASCII.
  • wchar_t: Typ znakowy szeroki, używany do przechowywania znaków Unicode, które wymagają więcej miejsca niż to dostępne w char.
5. Typy logiczne
  • bool: Typ logiczny przyjmujący jedną z dwóch wartości: true lub false. Jest podstawą dla operacji logicznych i warunkowych w C++.
6. Typ void
  • void: Specjalny typ danych, który nie przechowuje żadnych wartości. Używany w funkcjach jako typ zwracany, gdy funkcja nie zwraca wartości, oraz jako wskaźnik void* do adresu o nieokreślonym typie.
Deklaracja stałych

W C++ stałe można deklarować na kilka sposobów, w zależności od potrzeb i kontekstu użycia:

  • Słowo kluczowe const umożliwia zdefiniowanie stałej wartości dla danej zmiennej. Na przykład: const int LICZBA_DNI_W_TYGODNIU = 7;
  • Makrodefinicje preprocesora, choć obecnie rzadziej stosowane na korzyść const i constexpr, to inny sposób na definiowanie stałych: #define LICZBA_MIESIECY 12
  • Od C++11, słowo kluczowe constexpr służy do definiowania wyrażeń, które mogą być obliczone w czasie kompilacji, co jest szczególnie użyteczne dla optymalizacji i definiowania stałych: constexpr double PI = 3.14159;
Podsumowanie

Wybór odpowiedniego typu danych jest kluczowy dla efektywności programu, zarówno pod względem zużycia pamięci,