LEKCJA 10 Jakie operatory stosuje C++. _______________________________________________________________ Podczas tej lekcji: * Poznasz operatory j�zyka C++. * Przetestujesz dzia�anie niekt�rych operator�w. * Dowiesz si� wi�cej o deklarowaniu i inicjowaniu zmiennych. _______________________________________________________________ S��w kluczowych jest w j�zyku C++ stosunkowo niewiele, za to operator�w wyra�nie wi�cej ni� np. w Basicu. Z kilku operator�w ju� korzysta�e� w swoich programach. pe�n� list� operator�w wraz z kr�tkim wyja�nieniem przedstawiam poni�ej. Operatory C++ s� podzielone na 16 grup i mo�na je scharakteryzowa�: * priorytetem ** najwy�szy priorytet ma grupa 1 a najni�szy grupa 16 - przecinek, np. mno�enie ma wy�szy priorytet ni� dodawanie; ** wewn�trz ka�dej z 16 grup priorytet operator�w jest r�wny; * ��czno�ci� (wi�zaniem). [S!] Precedence - kolejno��, priorytet. ________________________________________________________________ Dwie cechy opertor�w C++ priorytet i ��czno�� decyduj� o sposobie obliczania warto�ci wyra�e�. Precedence - kolejno��, priorytet. Associativity - asocjatywno��, ��czno��, wi�zanie. Operator jest ��czny lewo/prawo-stronnie, je�li w wyra�eniu zawieraj�cym na tym samym poziomie hierarchii nawias�w min. dwa identyczne operatory najpierw jest wykonywany operator lewy/prawy. Operator jest ��czny, je�li kolejno�� wykonania nie wp�ywa na wynik. ________________________________________________________________ Przyk�ad: a+b+c+d = (a+d)+(c+b) [S] ________________________________________________________________ ASSIGN(ment) - Przypisanie. EQAL(ity) - R�wny, odpowiadaj�cy. BITWISE - bit po bicie (bitowo). REFERENCE - odwo�anie do..., powo�anie si� na..., wskazanie na... . Funkcje logiczne: OR - LUB - suma logiczna (alternatywa). AND - I - iloczyn logiczny. XOR (eXclusive OR) - ALBO - alternatywa wy��czaj�ca. NOT - NIE - negacja logiczna. ________________________________________________________________ Oznaczenia ��czno�ci przyj�te w Tabeli: {L->R} ���(Left to Right) z lewa na prawo. {L<<-R} ��(Right to Left) z prawa na lewo. Lista operator�w j�zyka C++. ________________________________________________________________ Kategoria�| Operator�����| ���Co robi / jak dzia�a ----------|--------------|-------------------------------------- 1. Highest| ()�����������| * ogranicza wyra�enia, (Najwy�szy|Parentheses | * izoluje wyra�enia warunkowe, priorytet)|��������������| * wskazuje na wywo�anie funkcji, {L->R}���|��������������| grupuje argumenty funkcji. ����������|--------------|-------------------------------------- ����������| []�����������| zawarto�� jedno- lub wielowymiarowych ����������|Brackets | tablic ����������|--------------|-------------------------------------- ����������| . |(direct component selector) ����������| -> |(indirect, or pointer, selection) ����������|��������������| Bezpo�rednie lub po�rednie wskazanie | | elementu unii b�d� struktury. |--------------|-------------------------------------- | :: | Operator specyficzny dla C++. | | Pozwala na dost�p do nazw GLOBALNYCH, | | nawet je�li zosta�y "przys�oni�te" | | przez LOKALNE. ----------|--------------|-------------------------------------- 2. �������| ! �����������| Negacja logiczna (NOT) Jednoar-�|--------------|------------------------------------ gumentowe | ~ | Zamiana na kod KOMPLEMENTARNY bit po (Unary) | | bicie. Dotyczy liczb typu int. {L<<-R} |--------------|-------------------------------------- | + | Bez zmiany znaku (Unary plus) |--------------|-------------------------------------- | - | Zmienia znak liczby / wyra�enia | | (Unary minus) |--------------|-------------------------------------- | ++ | PREinkrementacja/POSTinkrementacja |--------------|-------------------------------------- | -- | PRE/POSTdekrementacja |--------------|-------------------------------------- | & | Operator adresu(Referencing operator) |--------------|-------------------------------------- | * | Operator wskazania | | (Dereferencing operator) |--------------|-------------------------------------- | sizeof | Zwraca wielko�� argumentu w bajtach |--------------|-------------------------------------- | new | Dynamiczne zarz�dzanie pami�ci�: | delete | new - przydziela pami��, | | delete - likwiduje przydzia� pami�ci ----------|--------------|-------------------------------------- 3. Multi- | * | Mno�enie (UWAGA: Druga rola "*") plikatywne|--------------|-------------------------------------- {L->R} | / | Dzielenie |--------------|-------------------------------------- | % | Reszta z dzielenia (modulo) ----------|--------------|-------------------------------------- 4. Dost�pu| .* | Operatory specyficzne dla C++. (Member |(dereference) | Skasowanie bezpo�redniego wskazania access) | | na cz�onka klasy (Class Member). {L->R} |--------------|-------------------------------------- | ->* | Skasowanie po�redniego wskazania typu objektowe | | "wska�nik do wska�nika" ----------|--------------|-------------------------------------- 5. Addy - | + | Dodawanie dwuargumentowe. tywne |--------------|-------------------------------------- {L->R} | - | Odejmowanie dwuargumentowe. ----------|--------------|-------------------------------------- 6. Przesu-| << | Binarne przesuni�cie w lewo. ni�cia |--------------|-------------------------------------- (Shift) | >> | Binarne przesuni�cie w prawo. {L->R} | | (bit po bicie) ----------|--------------|-------------------------------------- 7. Relacji| < | Mniejsze ni�... {L->R} |--------------|-------------------------------------- | > | Wi�ksze ni�.... |--------------|-------------------------------------- | <= | Mniejsze lub r�wne. |--------------|-------------------------------------- | >= | Wi�ksze lub r�wne. ----------|--------------|-------------------------------------- 8.R�wno�ci| == | R�wne (r�wna si�). {L->R} | != | Nie r�wne. ----------|--------------|-------------------------------------- 9. | & | AND binarnie (Bitwise AND) {L->R} | | UWAGA: Druga rola "&". ----------|--------------|-------------------------------------- 10. | ^ | XOR binarnie (Alternatywa wy��czna). {L->R} | | UWAGA: To nie pot�ga ! ----------|--------------|------------------------------------- 11.{L->R} | | | OR binarnie (bit po bicie) ----------|--------------|------------------------------------- 12.{L->R} | && | Iloczyn logiczny (Logical AND). ----------|--------------|------------------------------------- 13.{L->R} | || | Suma logiczna (Logical OR). ----------|--------------|-------------------------------------- 14. Oper. | ?: | Zapis a ? x : y oznacza: Warunkowy | | "if a==TRUE then x else y" Conditional | gdzie TRUE to logiczna PRAWDA "1". {L<<-R} | | ----------|--------------|-------------------------------------- 15. Przy- | = | Przypisz warto�� (jak := w Pascalu) pisania |--------------|-------------------------------------- {L<<-R} | *= | Przypisz iloczyn. Zapis X*=7 | | oznacza: X=X*7 (o 1 bajt kr�cej!). |--------------|-------------------------------------- | /= | Przypisz iloraz. |--------------|-------------------------------------- | %= | Przypisz reszt� z dzielenia. |--------------|-------------------------------------- | += | Przypisz sum� X+=2 oznacza "X:=X+2" |--------------|-------------------------------------- | -= | Przypisz r�nic� X-=5 ozn. "X:=X-5" |--------------|-------------------------------------- | &= | Przypisz iloczyn binarny ( Bitwise | | AND) | | bit po bicie. |--------------|-------------------------------------- | ^= | Przypisz XOR bit po bicie. |--------------|-------------------------------------- | |= | Przypisz sum� log. bit po bicie. |--------------|-------------------------------------- | <<= | Przypisz wynik przesuni�cia o jeden | | bit w lewo. |--------------|-------------------------------------- | >>= | j. w. o jeden bit w prawo. ----------|--------------|-------------------------------------- 16. Prze- | , | Oddziela elementy na li�cie argu - cinek | | ment�w funkcji, (Comma) | | Stosowany w specja...
Infesto