Stronę tą wyświetlono już: 4635 razy
W programowaniu stosuje się szereg różnych operatorów, które można podzielić na pewne podgrupy. Poniżej postaram się opisać operatory stosowane w języku C++.
Operatory matematyczne
Operator podstawienia wartości
W C++ dla odróżnienia wprowadzono, że operator = oznacza jedynie podstawienie pewnej wartości do danej zmiennej np. w następujący sposób:
Operatory porównania wartości
Tego typu operatory są stosowane w instrukcjach warunkowych takich jak if, else if, pętlach: for; do while oraz while, o których mowa będzie nieco później. Wszystkie operatory porównania wartości zwracają wartość typu bool mogącą przyjmować dwa stany: 1 (true) lub 0 (false).
Równość: == - zwraca true, gdy dwa argumenty są sobie równe, false w przeciwnym przypadku. Przykładowy kod:
Różne: != - zwraca true gdy dwa argumenty są różne od siebie, false w przeciwnym przypadku. Przykładowy kod:
Mniejsze niż: < - zwraca true gdy argument stojący po lewej stronie jest mniejszy od argumentu stojącego po prawej stronie. Przykładowy kod:
Większe niż: >
Mniejsze lub równe: <=
Większe lub równe: >=
Operator trójargumentowy porównania wartości warunek?gdy_prawda:gdy_fałsz, który zwraca wyrażenie gdy_prawda jeżeli warunek jest spełniony, w przeciwnym przypadku zwraca wyrażenie gdy_falsz. Przykład:
Operator dodawania
Operator odejmowania
Operatory znaku wartości
Operator inkrementacji
Operatorem inkrementacji jest ++. Używa się go w celu zwiększenia wartości zmiennej o 1. Przykład:
Operator dekrementacji
Operatorem dekrementacji jest --. Używa się go w celu zmniejszenia wartości zmiennej o 1. Przykład:
Operator mnożenia
Operator dzielenia
Operator modulo (reszty z dzielenia)
Operator dodawania z podstawieniem
Operator odejmowania z podstawieniem
Operator mnożenia z podstawieniem
Operator dzielenia z podstawieniem
Operator reszty z dzielenia z podstawieniem
Operacje na bitach
Tego typu operatory wykonują operacje na poszczególnych bitach, które mogą być operacjami: logicznymi lub przesunięcia wartości bitów.
Operator przesunięcia bitowego w prawo
Jeżeli mam liczbę 8-bitową, która w zapisie dwójkowym ma wartość 10000000 (odpowiadającą 128 w systemie dziesiętnym) to następująca operacja:
podstawi za y wartość równą w zapisie dwójkowym 00010000 (odpowiadającą 16 w systemie dziesiętnym).
Operator przesunięcia bitowego w lewo
Operator bitowej koniunkcji AND
Operatorem bitowej koniunkcji jest &. Gdy dana jest liczba w zapisie dwójkowym 10101010 (w dziesiętnym to będzie 170) i druga liczba 00001111 (w dziesiętnym 15) to operacja:
zwróci wartość w zapisie dwójkowym równą 00001010, ponieważ dla każdego bitu z tej samej pozycji w zmiennej x i y operacja koniunkcji zwraca 1 gdy oba bity są równe 1 natomiast 0 w przeciwnym przypadku.
Operator bitowej alternatywy OR
Operatorem bitowej alternatywy jest |. Gdy dana jest liczba w zapisie dwójkowym 10101010 (w dziesiętnym to będzie 170) i druga liczba 00001111 (w dziesiętnym 15) to operacja:
zwróci wartość w zapisie dwójkowym równą 00001111, ponieważ dla każdego bitu z tej samej pozycji w zmiennej x i y operacja alternatywy zwraca 1 gdy co najmniej jeden bit jest równy 1 natomiast 0 w przeciwnym przypadku.
Operator bitowej alternatywy wykluczającej (xor)
Operatorem bitowej alternatywy wykluczającej (xor) jest ^. Gdy dana jest liczba w zapisie dwójkowym 10101010 (w dziesiętnym to będzie 170) i druga liczba 00001111 (w dziesiętnym 15) to operacja:
zwróci wartość w zapisie dwójkowym równą 10100101, ponieważ dla każdego bitu z tej samej pozycji w zmiennej x i y operacja alternatywy wykluczającej zwraca 1 gdy bity mają różne wartości a 0 w przeciwnym przypadku.
Operator przesunięcia bitowego w prawo z podstawieniem
Operator przesunięcia bitowego w lewo z podstawieniem
Operator bitowej alternatywy AND z jednoczesnym podstawieniem
Operator bitowej koniunkcji OR z jednoczesnym podstawieniem
Operator bitowej alternatywy wykluczającej XOR z jednoczesnym podstawieniem
Operator negacji bitowej NOT
Operatorem negacji bitowej (NOT) jest ~, jeżeli dana jest liczba, która w zapisie dwójkowym ma wartość 01010101 to negacją tej wartości będzie liczba w systemie dwójkowym 10101010. Przykładowy kod z użyciem tego operatora:
Operatory logiczne
Operator logicznej koniunkcji AND
Operatorem logicznej koniunkcji (AND) jest &&, zwraca wartość typu bool równą 1 (true), gdy warunki z lewej i prawej strony operatora są spełnione a 0 (false) w przeciwnym przypadku. Przykład:
Operator logicznej alternatywy OR
Operatorem logicznej alternatywy (OR) jest ||, zwraca wartość typu bool równą 1 (true), gdy co najmniej jeden z warunków jest spełniony, a 0 (false) w przeciwnym przypadku. Przykład:
Operatory związane z pamięcią
Operator wyłuskania wartości
Operatorem wyłuskania wartości jest *, umożliwia on wyciągnięcie z zmiennej typu wskaźnikowego wartości, na którą ta zmienna wskazuje. Przykład:
Operator wyłuskania adresu
Operatorem wyłuskania adresu jest &, umożliwia on wyciągnięcie z zmiennej adresu, pod którym jego wartość została zapisana. Przykład:
Operator dynamicznego przydzielania pamięci
Operatorem dynamicznego przydzielania pamięci jest new, umożliwia on dynamiczne przydzielenie pamięci do zmiennej wskaźnikowej. Przykład:
Operator dynamicznego przydzielania pamięci
Operatorem dynamicznego zwalniania pamięci jest delete, umożliwia on dynamiczne przydzielenie pamięci do zmiennej wskaźnikowej. Przykład:
Operator indeksowania elementów tablicy
Operatorem indeksowania elementów tablicy (jak i ich deklaracji) jest []. Przykład:
Operatory dostępu do elementów wewnętrznych struktur i klas
Operator rozróżnienia zakresu
Operatorem rozróżnienia zakresu jest ::. Typowym przykładem jego użycia jest dostęp do strumieni std::cout, i std::cin, o których nieco później będzie mowa.
Operator dostępu pośredniego
Operator dostępu bezpośredniego
Operator rzutowania typów
Operator rzutowania typu to ( typ_zmiennej_rzutujacej ). Służy do zamiany (zrzutowania) zmiennej jednego typu na zmienną typu innego. Przykład:
Operator ustalania rozmiarów danych
Operatorem ustalania rozmiaru danych jest sizeof(). Operator ten zwraca rozmiar danego typu zmiennej wyrażony w bajtach. Przykład: