W języku C++ operacje można wykonywać na całych słowach (mówiliśmy o tym wcześniej) lub na poszczególnych bitach słowa. Do tego drugiego typu operacji służą do tego operatory bitowe.
Operator Działanie
& bitowa koniunkcja
| bitowa alternatywa
^ bitowa różnica symetryczna
<< przesunięcie w lewo
>> przesunięcie w prawo
~ bitowa negacja
//Przykład operatory bitowe:
int a = 0x0f0f; //0000 1111 0000 1111
intb = 0x0ff0); //0000 11111111 0000
c = a & b; // 0000 1111 0000 0000 iloczyn bitowy
c = a | b; //0000 111111111111 suma bitowa
c = a ^ b; // 0000 0000 1111 1111 różnica symetryczna
Operatoty inkrementacji i dekrementacji mogą występować w dwóch odmianach: przedrostkowej ++ i;--i; / przyrostkowej; i++; i-- ;
Operator przedrostkowy ++ i; --i obliczany przed przypisaniem (nowej wartości pod i);
Operator przyrostkowy jest obliczany po przypisaniu.
Wyrażenie warunkowe (nie instrukcja):
(warunek)? wartość1 : wartość2;
cout « ((i>5)? 15: 20) « endl;
Operator sizeof:
Sizeof (nazwa typu) //również własne typy
Sizeof (nazwa Obiektu) //np. zmienne
Operator rzutowania:
(Nazwa typu) obiekt;
Nazwa typu (obiekt);
Funkcje – podprogram grupujący instrukcje
■ łatwego powtarzania pewnego cyklu obliczeń (za
pomocą funkcji tworzymy jakby własne obszerne „instrukcje")
■ zwiększenia przejrzystości programu
W języku C++ wszystkie podprogramy są funkcjami.
Funkcję wywołuje się przez podanie jej nazwy i w nawiasie (ewentualnych) argumentów.
Uwagi:
Funkcja ma swoją nazwę, która ją identyfikuje.
Przed odwołaniem się do nazwy wymagana jest jej deklaracja. Deklaracja, ale niekoniecznie definicja.
Sama funkcja może być zdefiniowana później;
Wywołanie funkcji, to napisanie jej nazwy wraz z listą argumentów przesyłanych do funkcji, ujętych w nawiasy okrągłe.
Przesyłanie argumentów do funkcji
przez wartość, przez referencję,
przez wskaźnik
Przesyłanie argumentów przez wartość:
W definicji funkcji występują parametry formalne.
Przy wywołaniu funkcji posługujemy się parametrami aktualnymi.
■ Do funkcji (przy wywołaniu) przesyłane są tylko wartości parametrów aktualnych.
■ Służą one do inicjalizacji parametrów formalnych
(operacje wykonywane są na parametrach formalnych).
■ Parametry formalne (i inne zadeklarowane w funkcji) są tworzone na stosie (tj wydzielonym obszarze pamięci; po wyjściu z funkcji zawartość tych zmiennych jest niszczona, a przy kolejnym wejściu jest ona przypadkowa).
I Są one kopiami parametrów aktualnych.
Uwagi:
Obiekt zdefiniowany na zewnątrz wszystkich funkcji ma zasięg globalny.
Zmienne globalne umieszczone są w wydzielonym
I obszarze pamięci, który przed uruchomieniem programu jest zerowany.
Zmienne lokalne są zmiennymi automatycznymi.
W momencie, gdy kończymy działanie blok, w którym
zmienne lokalne zostały powołane do życia, automatycznie
przestają Istnieć.
Obiekty automatyczne komputer przechowuje na stosie.
Należy pamiętać, że zmienne automatyczne nie są zerowane w chwili definicji.
'Jeśli nie zainicjowaliśmy Ich Jakąś wartością to przechowują one wartości przypadkowe.