background image

Lista operatorów w najpopularniejszych językach

[

edytuj

]

 

(do uzupełnienia o pozostałe języki) 

operator 

liczba 

argumentó

w 

działanie i zwracana 

wartość 

występowanie i priorytet (1 – 

najwyższy) 

C

 

C+

+

 

Jav

a

 

JavaScri

pt

 

Per

l

 

Pytho

n

 

PH

P

 

zakres::x 

::x

 

określenie zakresu lub 

przestrzeni nazw danej 

zmiennej/odwołanie do 

zmiennej globalnej – 

zwraca wartość zmiennej 

 

 

 

Str.pole

 

wskStr->pole

 

wybór pola ze 

struktury

 

lub 

klasy

 – zwraca 

wartość wybranego pola 

1  2 

 

 

 

tablica[n]

[1]

 

wybór wartości z pola 

tablicy

 o określonym 

indeksie – zwraca wartość 

wybranego pola 

1  2 

 

 

 

funkcja()

 

zm. 

wywołanie 

funkcji

 – 

operator o zmiennej 

liczbie argumentów, 

zwraca wartość funkcji 

1  2 

 

 

 

sizeof(obiek

t)

 

zwraca rozmiar obiektu 

(zmiennej, typu) w 

bajtach

 

1  2 

 

 

 

new typ 

delete x

 

alokuje

 blok pamięci na 

dynamiczną zmienną 

danego typu/zwalnia 

zaalokowaną pamięć 

wskazywaną przez 

wskaźnik x 

 

 

 

*wsk

 

operator wyłuskania 

wartości zmiennej ze 

wskaźnika

 – zwraca 

wartość zmiennej 

2  3 

 

 

 

&x

 

operator adresu – zwraca 

fizyczny adres komórki 

pamięci przechowującej 

zmienną x; operator 

referencji

 

2  3 

 

 

 

(typ)zmienna

 

operator 

rzutowania

 – 

zwraca wartość zmiennej 

po zrzutowaniu na dany 

typ 

2  3 

 

 

 

background image

x++ 
x--

 

inkrementacja

/

dekrementa

cja

 postfiksowa – zwraca 

wartość zmiennej x, 

następnie 

zwiększa/zmniejsza ją o 1 

2  3 

 

 

 

++x 
--x

 

inkrementacja

/

dekrementa

cja

 prefiksowa – 

zwiększa/zmniejsza 

wartość zmiennej o 1 oraz 

zwraca jej nową wartość 

2  3 

 

 

 

+x 
-x

 

unarne operatory znaku 

liczby – zwracają wartość 

zmiennej po "dopisaniu" 

znaku, nie ingerując w 

wartość 

2

[2

]

 

 

 

 

~x

 

negacja

 

bitowa

 – zwraca 

zmienną z zanegowanymi 

wszystkimi bitami, nie 

ingerując w wartość 

2  3 

 

 

 

!wyrażenie

 

negacja logiczna – zwraca 

zanegowaną wartość 

wyrażenia, zero dla 

wartości niezerowych, 

jeden dla zera 

2  3 

 

 

 

@x

 

operator kontroli błędów 

– zapewnia pominięcie 

wyświetlania ostrzeżeń 
systemowych dla danej 

instrukcji w celu 

samodzielnej kontroli 

błędów 

 

 

 

x*y 
x/y

 

mnożenie

/

dzielenie

 – 

zwraca wartość 

iloczynu/ilorazu 

zmiennych 

3  4 

 

 

 

x%y

 

dzielenie modulo

 – 

zwraca resztę z dzielenia 

wartości zmiennej x przez 

wartość y 

3  4 

 

 

 

x+y 
x-y

 

dodawanie

/

odejmowanie

 

– zwraca wartość 

sumy/różnicy zmiennych 

4  5 

 

 

 

x.y

 

operator złączenia 

łańcuchów znaków – 

zwraca łańcuch powstały 

ze złączenia x i y 

 

 

 

x<<y 
x>>y

 

przesunięcie bitowe

 

5  6 

 

 

 

background image

lewo/w prawo – zwraca 

zmienną x po 

przesunięciu wszystkich 

jej bitów o y pozycji w 

lewo/w prawo 

(przesunięcie o jedną 

pozycję w lewo 

odpowiada mnożeniu razy 

2, przesunięcie o jedną 

pozycję w prawo 

odpowiada dzieleniu 

przez 2) 

x<y 
x>y

 

logiczne operatory relacji, 

zwracające wartość 

niezerową, gdy x jest 

mniejszy/większy od y, 

zerową w przeciwnym 

wypadku 

6  7 

 

 

 

x<=y 
x>=y

 

logiczne operatory relacji, 

zwracające wartość 

niezerową, gdy x jest 

mniejszy lub 

równy/większy lub równy 

y, zerową w przeciwnym 

wypadku 

6  7 

 

 

 

x instanceof 

Y

 

operator porównujący typ 

zmiennej x z 

klasą/interfejsem Y 

 

 

 

x==y

 

logiczny operator relacji, 

zwracający wartość 

niezerową, gdy x jest 

równy y, zerową w 

przeciwnym wypadku 

7  8 

 

 

 

x<>y

 

logiczny operator relacji, 

zwracający wartość 

niezerową, gdy x jest 

różny od y, zerową w 

przeciwnym wypadku 

 

 

 

x!=y

 

logiczny operator relacji, 

zwracający wartość 

niezerową, gdy x jest 

różny od y, zerową w 

przeciwnym wypadku 

7  8 

 

 

 

x===y 
x!==y

 

logiczne operatory relacji 

z porównaniem typu, 

zwracające wartość 

niezerową, gdy x jest 

równe oraz tego samego 

 

 

 

background image

typu co y/różne lub 

innego typu niż y, zerową 

w przeciwnym wypadku 

x&y

 

iloczyn bitowy

 – zwraca 

wartość wynikającą z 

operacji iloczynu 

logicznego na każdej 

parze bitów ze zmiennych 

x i y 

8  9 

 

 

 

x^y

 

bitowa 

suma modulo 2

 – 

zwraca wartość 

wynikającą z operacji 

sumy modulo 2 na każdej 

parze bitów ze zmiennych 

x i y 

9  10  9 

 

 

 

10 

x|y

 

suma bitowa

 – zwraca 

wartość wynikającą z 

operacji sumy logicznej 

na każdej parze bitów ze 

zmiennych x i y 

10  11  10 

 

 

 

11 

x&&y

 

iloczyn logiczny

 – zwraca 

wartość iloczynu 

logicznego wyrażeń x i y 

– niezerową, gdy oba 

wyrażenia są niezerowe, 

zerową w innych 

przypadkach 

11  12  11 

 

 

 

12 

x||y

 

suma logiczna

 – zwraca 

wartość sumy logicznej 

wyrażeń x i y – zerową, 

gdy oba wyrażenia są 

zerowe, niezerową w 

innych przypadkach 

12  13  12 

 

 

 

13 

x ? y : z

 

operator warunkowy – 

zwraca y, gdy x ma 

wartość niezerową, z w 

przeciwnym wypadku 

13  14  13 

 

 

 

14 

x=y

 

operator przypisania – 

przypisuje zmiennej x 

wartość zmiennej y 

14  15  14 

 

 

 

15 

x*=y x/=y 
x%=y x+=y 

x-=y x<<=y 
x>>=y x&=y 

x^=y x|=y

 

operatory przypisania – 

przypisują zmiennej x 

wartość odpowiednio x*y, 

x/y, itd. 

14  15  14 

 

 

 

15 

x and y

 

niskopriorytetowy 

iloczyn 

logiczny

 

 

 

 

16 

x xor y

 

niskopriorytetowa 

suma 

 

 

 

17 

background image

modulo 2

 

x or y

 

niskopriorytetowa 

suma 

logiczna

 

 

 

 

18 

wyr1, wyr2

 

operator przecinkowy, 

służący np. do 

grupowania wyrażeń 

podczas inicjalizowania 

pętli 

15  16  15 

 

 

 

19

[3]

 

Przykładowy zapis w 

języku C

[

edytuj

]

 

(zmienna liczba jest typu int)

 

liczba *= ((liczba=10) + 7) % 3; 

Nawiasy w tym przypadku wymusiły zmianę priorytetów operatorów. Działania wykonane 
zostaną w porządku narzuconym przez nawiasy. To samo wyrażenie pozbawione nawiasów: 

liczba *= liczba = 10 + 7 % 3; 

jest również poprawne ze względu na składnię. Wynik będzie jednak inny – pierwsza 
wykonana zostanie operacja dzielenia modulo, następnie dodawania, a na końcu oba 
przypisania od prawej do lewej. 

W języku C kolejność obliczania operandów operatora nie jest gwarantowana ze względu na 
zastrzeżenie możliwości optymalizacji kodu wynikowego przez kompilator (nie dotyczy to 
operatorów 

&&

||

?:

 oraz 

,

). Użycie operandów, których obliczenie wartości wpływa na 

wartość pozostałych nie gwarantuje takiego samego wyniku we wszystkich implementacjach 
języka. 

Np. kod: 

int i = 1; 
tablica[i] = i++; 

nie gwarantuje, czy wartość 1 zostanie wstawiona pod indeks 1, czy może pod indeks 2 
tablicy.