Operatory w C ++
Operator to symbol, który mówi kompilatorowi, aby wykonał określone operacje matematyczne lub logiczne. C ++ jest bogaty we wbudowane operatory i udostępnia następujące typy operatorów -
- Operatory arytmetyczne
- Operatorzy relacyjni
- Operatory logiczne
- Operatory bitowe
- Operatory przypisania
- Różne operatory
W tym rozdziale przeanalizujemy kolejno operatory arytmetyczne, relacyjne, logiczne, bitowe, przypisania i inne.
Operatory arytmetyczne
Istnieją następujące operatory arytmetyczne obsługiwane przez język C ++ -
Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład |
|---|---|---|
| + | Dodaje dwa operandy | A + B da 30 |
| - | Odejmuje drugi operand od pierwszego | A - B da -10 |
| * | Mnoży oba operandy | A * B da 200 |
| / | Dzieli licznik przez de-licznik | B / A da 2 |
| % | Operator modułu i reszta po dzieleniu całkowitoliczbowym | B% A da 0 |
| ++ | Operator inkrementacji , zwiększa wartość całkowitą o jeden | A ++ da 11 |
| - | Operator zmniejszania, zmniejsza wartość całkowitą o jeden | A-- da 9 |
Operatorzy relacyjni
Istnieją następujące operatory relacyjne obsługiwane przez język C ++
Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład |
|---|---|---|
| == | Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy. | (A == B) nie jest prawdą. |
| ! = | Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, warunek staje się prawdziwy. | (A! = B) jest prawdą. |
| > | Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy. | (A> B) nie jest prawdą. |
| < | Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A <B) jest prawdą. |
| > = | Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A> = B) nie jest prawdą. |
| <= | Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A <= B) jest prawdą. |
Operatory logiczne
Istnieją następujące operatory logiczne obsługiwane przez język C ++.
Załóżmy, że zmienna A zawiera 1, a zmienna B 0, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład |
|---|---|---|
| && | Nazywany operatorem logicznym AND. Jeśli oba operandy są niezerowe, warunek staje się prawdziwy. | (A && B) jest fałszem. |
| || | Nazywany operatorem logicznym OR. Jeśli którykolwiek z dwóch operandów jest niezerowy, warunek staje się prawdziwy. | (A || B) jest prawdą. |
| ! | Nazywany operatorem logicznym NOT. Służy do odwracania stanu logicznego operandu. Jeśli warunek jest spełniony, operator logiczny NIE spowoduje fałsz. | ! (A && B) jest prawdą. |
Operatory bitowe
Operator bitowy działa na bitach i wykonuje operacje bit po bicie. Tabele prawdy dla &, | i ^ są następujące -
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Załóżmy, że A = 60; i B = 13; teraz w formacie binarnym będą wyglądać następująco -
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ A = 1100 0011
W poniższej tabeli wymieniono operatory bitowe obsługiwane przez język C ++. Załóżmy, że zmienna A zawiera 60, a zmienna B 13, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład |
|---|---|---|
| & | Operator binarny AND kopiuje trochę do wyniku, jeśli istnieje w obu operandach. | (A i B) dadzą 12, czyli 0000 1100 |
| | | Operator binarny OR kopiuje bit, jeśli istnieje w którymkolwiek z operandów. | (A | B) da 61, czyli 0011 1101 |
| ^ | Binarny operator XOR kopiuje bit, jeśli jest ustawiony w jednym operandzie, ale nie w obu. | (A ^ B) da 49, czyli 0011 0001 |
| ~ | Operator dopełniacza binarnego jest jednoargumentowy i powoduje „odwracanie” bitów. | (~ A) da -61, czyli 1100 0011 w postaci uzupełnienia do 2 ze względu na liczbę binarną ze znakiem. |
| << | Binarny operator przesunięcia w lewo. Wartość lewego operandu jest przesuwana w lewo o liczbę bitów określoną przez prawy operand. | << 2 da 240, czyli 1111 0000 |
| >> | Binarny operator przesunięcia w prawo. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand. | >> 2 da 15, czyli 0000 1111 |
Operatory przypisania
Istnieją następujące operatory przypisania obsługiwane przez język C ++ -
Pokaż przykłady
| Operator | Opis | Przykład |
|---|---|---|
| = | Prosty operator przypisania, przypisuje wartości z operandów po prawej stronie do argumentów po lewej stronie. | C = A + B przypisze wartość A + B do C. |
| + = | Dodaj operator przypisania AND, dodaje prawy operand do lewego operandu i przypisuje wynik do lewego operandu. | C + = A jest równoważne C = C + A |
| - = | Operator odejmowania AND przypisania, Odejmuje prawy operand od lewego operandu i przypisuje wynik do lewego operandu. | C - = A jest równoważne C = C - A |
| * = | Operator przypisania mnożenia AND, mnoży prawy operand przez lewy operand i przypisuje wynik do lewego operandu. | C * = A jest równoważne C = C * A |
| / = | Operator dzielenia AND przypisania, dzieli lewy operand z prawym operandem i przypisuje wynik do lewego operandu. | C / = A jest równoważne C = C / A |
| % = | Operator przypisania modułu AND, pobiera moduł przy użyciu dwóch operandów i przypisuje wynik do lewego operandu. | C% = A jest równoważne C = C% A |
| << = | Operator przesunięcia w lewo AND przypisania. | C << = 2 to to samo, co C = C << 2 |
| >> = | Operator prawego przesunięcia AND przypisania. | C >> = 2 to to samo, co C = C >> 2 |
| & = | Operator przypisania bitowego AND. | C & = 2 to to samo, co C = C & 2 |
| ^ = | Bitowe wykluczające OR i operator przypisania. | C ^ = 2 to to samo, co C = C ^ 2 |
| | = | Bitowy operator OR i przypisanie. | C | = 2 to to samo, co C = C | 2 |
Różne operatory
W poniższej tabeli wymieniono inne operatory obsługiwane w języku C ++.
| Sr.No | Operator i opis |
|---|---|
| 1 | sizeof operator sizeof zwraca rozmiar zmiennej. Na przykład sizeof (a), gdzie „a” jest liczbą całkowitą i zwróci 4. |
| 2 | Condition ? X : Y Operator warunkowy (?) . Jeśli warunek jest prawdziwy, zwraca wartość X, w przeciwnym razie zwraca wartość Y. |
| 3 | , Operator przecinka powoduje wykonanie sekwencji operacji. Wartość całego wyrażenia z przecinkiem jest wartością ostatniego wyrażenia na liście oddzielonej przecinkami. |
| 4 | . (dot) and -> (arrow) Operatory składowe służą do odwoływania się do poszczególnych elementów członkowskich klas, struktur i unii. |
| 5 | Cast Operatory rzutowania konwertują jeden typ danych na inny. Na przykład int (2,2000) zwróci wartość 2. |
| 6 | & Operator wskaźnika & zwraca adres zmiennej. Na przykład & a; poda rzeczywisty adres zmiennej. |
| 7 | * Operator wskaźnika * jest wskaźnikiem do zmiennej. Na przykład * var; wskaże na zmienną var. |
Pierwszeństwo operatorów w C ++
Pierwszeństwo operatorów określa grupowanie terminów w wyrażeniu. Wpływa to na sposób oceny wyrażenia. Niektórzy operatorzy mają wyższy priorytet niż inni; na przykład operator mnożenia ma wyższy priorytet niż operator dodawania -
Na przykład x = 7 + 3 * 2; tutaj x ma przypisane 13, a nie 20, ponieważ operator * ma wyższy priorytet niż +, więc najpierw jest mnożony przez 3 * 2, a następnie sumowany do 7.
Tutaj operatory o najwyższym priorytecie pojawiają się na górze tabeli, a operatory o najniższym priorytecie - na dole. W wyrażeniu najpierw zostaną ocenione operatory o wyższym priorytecie.
Pokaż przykłady
| Kategoria | Operator | Łączność |
|---|---|---|
| Przyrostek | () [] ->. ++ - - | Z lewej na prawą |
| Jednoargumentowe | + -! ~ ++ - - (typ) * & sizeof | Od prawej do lewej |
| Mnożny | * /% | Z lewej na prawą |
| Przyłączeniowy | + - | Z lewej na prawą |
| Zmiana | << >> | Z lewej na prawą |
| Relacyjny | <<=>> = | Z lewej na prawą |
| Równość | ==! = | Z lewej na prawą |
| Bitowe AND | & | Z lewej na prawą |
| Bitowe XOR | ^ | Z lewej na prawą |
| Bitowe OR | | | Z lewej na prawą |
| Logiczne AND | && | Z lewej na prawą |
| Logiczne LUB | || | Z lewej na prawą |
| Warunkowy | ?: | Od prawej do lewej |
| Zadanie | = + = - = * = / =% = >> = << = & = ^ = | = | Od prawej do lewej |
| Przecinek | , | Z lewej na prawą |