1. Czym jest zmienna i stała

Jak już obiecałem w poprzednim kursie, zajmiemy się czymś bez czego programowanie w ogóle nie było by możliwe – zmiennymi czyli alokowaniem pamięci komputera dla naszych potrzeb.Zmienna to po prostu wartość w pamięci z której można korzystać w czasie programu.Stała rózni się od zmiennej tym, że jest alokowana tylko raz i jej rozmiar nie może ulec zmianie tzn. jej wartość jest cały czas taka sama.
Pamięć komputera można sobie wyobrazić jako dużą ilość ponumerowanych pojemników. Numery te są adresami zmiennych i właśnie przez zmienne uzyskujemy dostęp do odpowiedniego „pojemnika” pamięci komputera. Zmienne rezerwują takie pojemniki w których przechowywane są wartości. Pamiętajmy jednak, że pamięć komputera jest ograniczona (mimo, że dzisiejsze komputery posiadają duże pojemności) i należy definiować zmienne rozważnie. Pewnie ktoś zapyta co to oznacza? Oznacz to, że jeśli potrzebna nam jest jedna liczna nie musimy definiować 10 zmiennych do przechowywania tej wartości. Teraz, gdy już wiem czym jest zmienna mogę przedstawić wam podstawowe typy zmiennych i ich rozmiar w pamięci :

2. Podstawowe typy zmiennych :

Niektóre rozmiary zmiennych mogą się różnic w niewielkim stopniu w zależności od używanego kompilatora.

3. Definiowanie zmiennych

Każdą zmienną przed jej wykorzystaniem należy zdefiniować tzn. „powiedzieć” kompilatorowi ile ma na nią przydzielić pamięci. Żeby to zrobić, należy podać typ zmiennej, a następnie wpisać jej nazwę. Nazwy zmiennych mogą zawierać litery duże i małe a także cyfry ale tylko wtedy gdy cyfry stanowią część wyrazu.Mimo, że nazewnictwo zmiennych jest dowolne, to jednak warto nadawać im nazwy, które będą informowały o ich przeznaczeniu np. liczbaDni zamiast daqweq143.

W odróżnieniu od Pascala, C++ ma możliwość definiowania zmiennych prawie w każdym miejscu programu.Pamiętajmy także, że C++ uwzględnia wielość liter, więc zmienna licznaDni to nie to samo co LiCzBaDnI. Ciekawym zapisem zmiennych jest tzn. notacja węgierska, czyli nazywanie zmiennych z podaniem pierwszej litery jej typu np.

Dzięki temu podczas przeglądania naszego programu możemy w łatwy sposób zrozumieć jego działanie, bez potrzeby szukania jakiego typu została zadeklarowana zmienna.Sposób zapisu zmiennych, jest rzeczą indywidualną i zależy od programisty.Należy wybrać sobie taki styl, który nam odpowiada, jednak w przypadku jeśli piszemy kod dla innych warto pomyśleć też o nich .C++ jak większość języków daje nam możliwość zdefiniowania kilku zmiennych tego samego typu jednocześnie :

Dzięki temu w szybki sposób definiujemy kilka zmiennych tego samego typu.Możemy także wraz z definicją zrobić inicjacje zmiennej czyli przypisanie do niej określonej wartości.

4. Zastosowanie i operowanie na zmiennych

Jak już pisałem, zmienne są nam niezbędne, ale do czego tak naprawdę mogą się nam przydać? Oto prosty kod ilustrujący przydatność zmiennych :

Jak widzimy ten program posłużył nam jako mini-kalkulator, który przechowuje liczby i ich iloczyn w pamięci. Można by to było zrobić „ręcznie” ale co jeśli chcemy sami podać liczby, z których uzyskamy nasz iloczyn? Tu własnie z pomocą przychodzą zmienne, które posłużą jako nasza pamieć :

5. Predefiniowywanie typów

Korzystając z tabeli typów zmiennych, można zaobserwować np. taki typ : unsigned short int. Wpisywanie tak długiej nazwy za każdym razem przy definicji tego typu może stać się uciążliwe, dlatego z pomocą przychodzi nam predefiniowanie. Używa się go za pomocą słowa typedef ( definuj typ) :

Dzięki temu gdy będziemy chcieli stworzyć zmienną typu unsigned short int wystarczy zadeklarować ją jako nasz nowy typ USInt :

Jest równoznacze z :

6.Stałe

Do przechowywania danych służą także stałe. Jednak w odróżnieniu od zmiennej, wartość stałej nie ulega zmianie. Podczas tworzenia stałej, trzeba ją zainicjować; później nie można już przypisywać jej innej wartości.
W C++ występują dwa typy zmiennych : literały i zmienne stałe symboliczne.Literały wpisywane są bezpośrednio w danym miejscu programu :

wiek jest zmienną typu int; z kolei 16 jest literałem któremu nie można przypisać wartości. Natomiast stałe symboliczne reprezentowane są przez swoją nazwę np:

W C++ istnieją dwa sposoby definiowania zmiennych symbolicznych.Jednym ze sposobów jest użycie dyrektywy #define :

Takie definiowanie nie ma określonego typu. Działa na zasadzie zastąpienia w kodzie każdego odwołania do tej stałej czyli jeśli kompilator podczas kompilacji napotka stałą rok, to wstawię w jej miejsce 2005.Jest to sposób przestarzały. Obecnie używa się raczej definiowania stałych za pomocą słowa const które daje możliwość otrzymania adresu tego obiektu :

Zalecam stosowanie drugiej metody, jednak warto znać pierwszy sposób, który może przydać się przy analizie kodu.

7. Stałe wyliczeniowe

Stałe wyliczeniowe umożliwiają definiowanie typów, wraz ze zmiennymi do których można przypisać wartości.Domyślnie elementu indeksowane są od zera:

Tak więc czerwony będzie równy 0 , zielony 1 a niebieski 2.Do zmiennych jednak można przypisać wartości samemu:

W takim przypadku czerwony będzie równy 30 , zielony 31 (gdyż nie podaliśmy jego wartości samemu a poprzedni element miał wartość 30, wiedząc że, elementy indeksują się co 1),niebieski 120;
Jak można wykorzystać stałe wyliczeniowe ? Oto przykład:

Dzięki stałym wyliczeniowym nasz kod jest bardziej przejrzysty.

Autor: Drazek