Kim są operatorzy?
Operator jest symbolem używanym do wykonywania operacji na operandach. Operator obsługuje operandy. Operacje mogą być matematyczne lub logiczne. W C ++ istnieją różne typy operatorów do wykonywania różnych operacji.
Rozważ następującą operację:
a = x + y;
W powyższej instrukcji x i y są operandami, podczas gdy + jest operatorem dodawania. Gdy kompilator C ++ napotka powyższą instrukcję, doda x i y i zapisze wynik w zmiennej a.
W tym samouczku C ++ dowiesz się:
- Kim są operatorzy?
- Operatory arytmetyczne
- Operatorzy relacyjni
- Operatory logiczne
- Operatory bitowe
- Operatory przypisania
- Operator różnych
- operator sizeof
- Operator przecinka
- Operator warunkowy
- Pierwszeństwo operatorów
Operatory arytmetyczne
Są to typy operatorów używanych do wykonywania operacji matematycznych / arytmetycznych. Zawierają:
Operator | Opis |
+ operator dodawania | Dodaje do operandów. |
- operator odejmowania | Odejmuje 2 nd operand od 1 st argument. |
* operator mnożenia | Mnoży 2 operandy. |
/ operator dzielenia. | Dzieli licznik przez mianownik. |
% operator modułu | Zwraca resztę po dzieleniu. |
++ Operator inkrementacji | Zwiększa wartość całkowitą o 1. |
- operator dekrementacji. | Zmniejsza wartość całkowitą o 1. |
Na przykład:
#includeusing namespace std;int main() {int a = 11;int b = 5;int c;cout << "a + b is : << a+b << endl; //11+5cout << "a - b is : << a-b << endl; //11-5cout << "a * b is : << a*b << endl; //11*5cout << "a / b is : << a/b << endl; //11/5cout << "a % b is : << a%b << endl; //11%5cout << "a++ is : << a++ << endl; //11++cout << "a-- is : << a-- << endl; //12--return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Deklarowanie zmiennej całkowitej a i inicjowanie jej na 11.
- Deklarowanie zmiennej całkowitej b i inicjowanie jej na 5.
- Deklarowanie zmiennej całkowitej c.
- Wydruk wartości operacji a + b obok innego tekstu na konsoli.
- Wydruk wartości operacji ab obok innego tekstu na konsoli.
- Wydruk wartości operacji a * b obok innego tekstu na konsoli.
- Wydruk wartości operacji a / b obok innego tekstu na konsoli.
- Wydruk wartości operacji a% b obok innego tekstu na konsoli.
- Wydruk wartości operacji a ++ obok innego tekstu na konsoli.
- Wydruk wartości operacji a-- obok innego tekstu na konsoli.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Operatorzy relacyjni
Te typy operatorów wykonują porównania na operandach. Na przykład możesz potrzebować wiedzieć, który operand jest większy od drugiego lub mniejszy od drugiego. Zawierają:
Opis
Operator | Opis |
== równe operatorowi. | Sprawdza równość dwóch wartości operandów. |
! = różne od operatora | Sprawdza równość dwóch wartości operandów. |
> świetne niż operator | Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu. |
Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu. |
|
> = operator większy lub równy | Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu. |
<= mniejszy lub równy operatorowi. | Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu. |
Na przykład:
#includeusing namespace std;int main() {int a = 11;int b = 5;cout << "a=11, b=5" << endl;if (a == b) {cout << "a == b is true" << endl;}else {cout << " a == b is false" << endl;}if (a < b) {cout << "a < b is true" << endl;}else {cout << "a < b is false" << endl;}if (a> b) {cout << "a> b is true" << endl;}else {cout << "a> b is false" << endl;}return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Deklarowanie zmiennej całkowitej a i inicjowanie jej na 11.
- Deklarowanie zmiennej całkowitej b i inicjowanie jej na 5.
- Wydruk tekstu na konsoli podający wartości zmiennych a i b.
- Wykonując operację arytmetyczną, a == b w instrukcji podejmowania decyzji if, aby wiedzieć, czy jest to prawda, czy fałsz. {Oznacza początek treści instrukcji if.
- Tekst do wydrukowania na konsoli, jeśli operacja a == b jest prawdą. Endl jest słowem kluczowym C ++ oznaczającym linię końcową. Popycha kursor, aby rozpocząć drukowanie w następnym wierszu. Znak} oznacza koniec treści instrukcji if.
- Inna część powyższego oświadczenia if. Określa, co zrobić, jeśli operacja a == b jest fałszywa.
- Tekst do wydrukowania na konsoli, jeśli operacja a == b jest fałszywa. Endl jest słowem kluczowym C ++ oznaczającym linię końcową. Popycha kursor, aby rozpocząć drukowanie w następnym wierszu. Znak} oznacza koniec treści instrukcji else.
- Wykonywanie operacji arytmetycznej, a
- Tekst do wydrukowania na konsoli, jeśli operacja a
- Inna część powyższego oświadczenia if. Określa, co zrobić, jeśli operacja a
- Tekst do wydrukowania na konsoli, jeśli operacja a
- Wykonywanie operacji arytmetycznej a> b w instrukcji podejmowania decyzji if, aby wiedzieć, czy jest to prawda, czy fałsz. {Oznacza początek treści instrukcji if.
- Tekst do wydrukowania na konsoli, jeśli operacja a> b jest prawdą. Endl jest słowem kluczowym C ++ oznaczającym linię końcową. Popycha kursor, aby rozpocząć drukowanie w następnym wierszu. Znak} oznacza koniec treści instrukcji if.
- Inna część powyższego oświadczenia if. Określa, co zrobić, jeśli operacja a> b jest fałszywa.
- Tekst do wydrukowania na konsoli, jeśli operacja a> b jest fałszywa. Endl jest słowem kluczowym C ++ oznaczającym linię końcową. Popycha kursor, aby rozpocząć drukowanie w następnym wierszu. Znak} oznacza koniec treści instrukcji else.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
- Tekst do wydrukowania na konsoli, jeśli operacja a
Operatory logiczne
Operatory logiczne łączą dwa / więcej ograniczeń / warunków. Operatory logiczne również uzupełniają ocenę rozważanego stanu pierwotnego. Zawierają:
Operator | Opis |
&& operator logiczny AND. | Warunek jest prawdziwy, jeśli oba operandy są różne od zera. |
|| operator logiczny OR. | Warunek jest prawdziwy, jeśli jeden z operandów jest różny od zera. |
! operator logiczny NOT. | Odwraca stan logiczny operandu. Jeśli operand jest prawdziwy,! operator sprawia, że jest fałszywa. |
Na przykład:
#includeusing namespace std;int main(){int a = 5, b = 2, c = 6, d = 4;if (a == b && c> d)cout << "a equals to b AND c is greater than d\n";elsecout << "AND operation returned false\n";if (a == b || c> d)cout << "a equals to b OR c is greater than d\n";elsecout << "Neither a is equal to b nor c is greater than d\n";if (!b)cout << "b is zero\n";elsecout << "b is not zero";return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu.
- {Oznacza początek treści funkcji main ().
- Zadeklarowanie 4 zmiennych całkowitych a, b, c i d oraz przypisanie im różnych wartości.
- Korzystanie z operatora && (AND) wewnątrz instrukcji if. Łączy dwa warunki, wartość a jest równa wartości b, a wartość a jest większa niż wartość b. Pierwszy warunek jest fałszywy, drugi warunek jest prawdziwy. Fałsz && prawda jest fałszem, stąd wynik if jest fałszywy.
- Tekst do wydrukowania w konsoli, jeśli powyższe stwierdzenie if jest prawdziwe. To nie zostanie wykonane.
- Część do wykonania, jeśli powyższe stwierdzenie if jest fałszywe.
- Tekst do wydrukowania na konsoli, jeśli instrukcja if jest fałszywa. To zostanie wykonane.
- Korzystanie z || (OR) operator w instrukcji if. Łączy dwa warunki, wartość a jest równa wartości b, a wartość a jest większa niż wartość b. Pierwszy warunek jest fałszywy, drugi warunek jest prawdziwy. False || true jest True, stąd wynik if jest true.
- Tekst do wydrukowania w konsoli, jeśli powyższe stwierdzenie if jest prawdziwe. To zostanie wykonane.
- Część do wykonania, jeśli powyższe stwierdzenie if jest fałszywe.
- Tekst do wydrukowania na konsoli, jeśli instrukcja if jest fałszywa. To nie zostanie wykonane.
- Sprawdzanie, czy wartość zmiennej wynosi 0.
- Tekst do wydrukowania w konsoli, jeśli powyższe stwierdzenie if jest prawdziwe. To nie zostanie wykonane.
- Część do wykonania, jeśli powyższe stwierdzenie if jest fałszywe.
- Tekst do wydrukowania na konsoli, jeśli instrukcja if jest fałszywa. To zostanie wykonane.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Operatory bitowe
Operatory bitowe wykonują operacje na poziomie bitów na operandach. Najpierw operatory są konwertowane do poziomu bitowego, a następnie wykonywane są operacje na operandach. Gdy operacje arytmetyczne, takie jak dodawanie i odejmowanie, są wykonywane na poziomie bitowym, wyniki można osiągnąć szybciej. Zawierają:
Operator | Opis |
& (bitowe i). | Pobiera 2 liczby (operandy), a następnie wykonuje operację AND na każdym bicie dwóch liczb. Jeśli oba są równe 1, AND zwraca 1, w przeciwnym razie 0. |
| (bitowe LUB) | Przyjmuje 2 liczby (operandy), a następnie wykonuje operację LUB na każdym bicie dwóch liczb. Zwraca 1, jeśli jeden z bitów ma wartość 1. |
(bitowy XOR) | Pobiera 2 liczby (operandy), a następnie wykonuje XOR na każdym bicie dwóch liczb. Zwraca 1, jeśli oba bity są różne. |
<< (przesunięcie w lewo) | Przyjmuje dwie liczby, a następnie w lewo przesuwa bity pierwszego operandu. Drugi operand określa całkowitą liczbę miejsc do przesunięcia. |
>> (prawe przesunięcie) | Przyjmuje dwie liczby, a następnie w prawo przesuwa bity pierwszego operandu. Drugi operand określa liczbę miejsc do przesunięcia. |
~ (bitowe NIE). | Pobiera liczbę, a następnie odwraca wszystkie jej bity. |
#includeusing namespace std;int main() {unsigned int p = 60; // 60 = 0011 1100unsigned int q = 13; // 13 = 0000 1101int z = 0;z = p & q;cout << "p&q is : " << z << endl; // 12 = 0000 1100z = p | q;cout << "p|q is : " << z << endl; // 61 = 0011 1101z = p q;cout << "p^q is : " << z << endl; // 49 = 0011 0001z = ~p;cout << "~p is : " << z << endl; // -61 = 1100 0011z = p << 2;cout << "p<<2 is: " << z << endl; // 240 = 1111 0000z = p>> 2;cout << "p>>2 is : " << z << endl; // 15 = 0000 1111return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Deklarowanie zmiennych całkowitych bez znaku p i przypisanie im wartości 60, czyli 0011 1100 w systemie dwójkowym.
- Deklarowanie zmiennych całkowitych bez znaku q i przypisanie im wartości 13, czyli 0000 1101 w systemie dwójkowym.
- Deklarowanie zmiennej całkowitej z i inicjowanie jej na 0.
- Wykonywanie operacji bitowej & (AND) na zmiennych p i q oraz zapisywanie wyniku w zmiennej z.
- Wydruk wyniku powyższej operacji na konsoli obok innego tekstu.
- Wykonywanie bitowego | (LUB) operacja na zmiennych p i q oraz przechowywanie wyniku w zmiennej z.
- Wydruk wyniku powyższej operacji na konsoli obok innego tekstu.
- Wykonywanie operacji bitowej (XOR) na zmiennych p i q oraz zapisywanie wyniku w zmiennej z.
- Wydruk wyniku powyższej operacji na konsoli obok innego tekstu.
- Wykonywanie operacji bitowej ~ (NOT) na zmiennych p i q oraz zapisywanie wyniku w zmiennej z.
- Wydruk wyniku powyższej operacji na konsoli obok innego tekstu.
- Wykonywanie operacji przesunięcia w lewo na zmiennej p i zapisywanie wyniku w zmiennej z.
- Wydruk wyniku powyższej operacji na konsoli obok innego tekstu.
- Wykonywanie operacji przesunięcia w prawo na zmiennej p i zapisywanie wyniku w zmiennej z.
- Wydruk wyniku powyższej operacji na konsoli obok innego tekstu.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Operatory przypisania
Operatory przypisania przypisują wartości do zmiennych. Operand / zmienna jest dodawana po lewej stronie operatora, podczas gdy wartość jest dodawana po prawej stronie operatora. Zmienna i wartość muszą należeć do tego samego typu danych, w przeciwnym razie kompilator C ++ zgłosi błąd. Na przykład:
x = 5;
W powyższym przykładzie x to zmienna / operand, = to operator przypisania, a 5 to wartość. Oto popularne operatory przypisania w C ++:
Operator | Opis |
= (prosty operator przypisania) | Przypisuje wartość po prawej stronie zmiennej po lewej stronie. |
+ = (Operator dodawania AND przypisania) | Najpierw dodaje wartość lewego operandu do wartości prawego operandu, a następnie przypisuje wynik do zmiennej po lewej stronie. |
- = (operator odejmowania AND przypisania) | Najpierw odejmuje wartość prawego operandu od wartości lewego operandu, a następnie przypisuje wynik do zmiennej po lewej stronie. |
* = (Operator mnożenia AND przypisania) | Najpierw mnoży wartość lewego operandu przez wartość prawego operandu, a następnie przypisuje wynik do zmiennej po lewej stronie. |
/ = (Operator przypisania dzielenia ORAZ) | Najpierw dzieli wartość lewego operandu przez wartość prawego operandu, a następnie przypisuje wynik do zmiennej po lewej stronie. |
Na przykład:
#includeusing namespace std;int main(){int x = 5;cout << "Initial value of x is " << x << "\n";x += 5;cout << "x += 5 gives : << x << "\n";x -= 5;cout << "x -= 5 gives : " << x << "\n";x *= 5;cout << "x *= 5 gives : << x << "\n";x /= 5;cout << "x /= 5 gives : " << x << "\n";return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu.
- {Oznacza początek treści funkcji main ().
- Deklarowanie zmiennej całkowitej x i przypisanie jej wartości 5.
- Wydruk wartości zmiennej x obok innego tekstu na konsoli. \ N jest znakiem nowej linii. Podczas drukowania przesuwa kursor do następnej linii.
- Dodanie 5 do wartości zmiennej x i przypisanie wyniku do zmiennej x.
- Wydruk wartości zmiennej x na konsoli obok innego tekstu.
- Odejmowanie 5 od wartości x i przypisywanie wyniku do zmiennej x.
- Wydruk wartości zmiennej x na konsoli obok innego tekstu.
- Mnożenie wartości zmiennej x przez 5 i przypisanie wyniku do zmiennej x.
- Wydruk wartości zmiennej x na konsoli obok innego tekstu.
- Dzielenie wartości zmiennej x przez 5 i przypisanie wyniku do zmiennej x.
- Wydruk wartości zmiennej x na konsoli obok innego tekstu.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Operator różnych
Omówmy inne operatory obsługiwane przez C ++:
operator sizeof
Ten operator określa rozmiar zmiennej. Użyj operatora sizeof, aby określić rozmiar typu danych. Na przykład:
#includeusing namespace std;int main() {cout<<"Size of int : "<< sizeof(int) << "\n";cout<<"Size of char : " << sizeof(char) << "\n";cout<<"Size of float : " << sizeof(float) << "\n";cout<<"Size of double : " << sizeof(double) << "\n";return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Określanie rozmiaru danych typu integer za pomocą operatora sizeof i drukowanie go wraz z innym tekstem na konsoli.
- Określanie rozmiaru typu danych znakowych za pomocą operatora sizeof i drukowanie go wraz z innym tekstem na konsoli.
- Określanie rozmiaru typu danych typu float przy użyciu operatora sizeof i drukowanie go wraz z innym tekstem na konsoli.
- Określanie rozmiaru typu danych typu float przy użyciu operatora sizeof i drukowanie go wraz z innym tekstem na konsoli.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Operator przecinka
Operator przecinka (,) wyzwala wykonanie sekwencji operacji. Wyraża pierwszy operand i odrzuca wynik. Następnie ocenia drugi operand i zwraca wartość i typ.
#includeusing namespace std;int main() {int x, y;y = 100;x = (y++, y + 10, 99 + y);cout << x;return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Deklarowanie dwóch zmiennych całkowitych x i y.
- Przypisanie zmiennej ya wartości 100.
- Zwiększenie wartości y i przypisanie wyniku do zmiennej x. Zaczyna się od y przy 100, a następnie zwiększa go do 101 (y ++). Następnie y jest dodawane do 10. W końcu y, wciąż na poziomie 101, jest dodawane do 99, dając 200. x wynosi teraz 200.
- Wydruk wartości zmiennej x na konsoli.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Operator warunkowy
Ten operator ocenia warunek i działa w oparciu o wynik oceny.
Składnia:
Condition ? Expression2 : Expression3;
Parametry:
- Warunek to stan, który ma zostać oceniony.
- Wyrażenie1 jest wyrażeniem, które ma zostać wykonane, jeśli warunek jest prawdziwy.
- Wyrażenie3 jest wyrażeniem, które ma zostać wykonane, jeśli warunek jest fałszywy.
Na przykład:
#includeusing namespace std;int main() {int a = 1, b;b = (a < 10) ? 2 : 5;cout << "value of b: " << b << endl;return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Deklarowanie dwóch zmiennych całkowitych a i b. Zmiennej a przypisano wartość 1.
- Przypisanie wartości do zmiennej b. Jeśli zmienna a jest mniejsza niż 10, b otrzyma wartość 2, w przeciwnym razie b otrzyma wartość 5.
- Wydruk wartości zmiennej b na konsoli obok innego tekstu.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Pierwszeństwo operatorów
Pojedyncza operacja może mieć więcej niż jednego operatora. W takim przypadku pierwszeństwo operatorów określa ten, który jest oceniany jako pierwszy.
Poniższa lista przedstawia pierwszeństwo operatorów w C ++, z malejącym priorytetem od lewej do prawej:
(), [], *, /,%, +/-, <<, >>, ==,! =, ^, |, &&, ||,?:, =, + =, - =, 8 = , / =
Podsumowanie:
- Operatory to symbole służące do wykonywania operacji logicznych i arytmetycznych.
- Operatory arytmetyczne pomagają nam wykonywać różne operacje arytmetyczne na operandach.
- Operatory relacyjne pomagają nam wykonywać różne operacje porównawcze na operandach.
- Operatory logiczne pomagają nam wykonywać różne operacje logiczne na operandach.
- Operatory bitowe pomagają nam wykonywać operacje bitowe na operandach.
- Operatory przypisania pomagają nam wykonywać różne operacje arytmetyczne na operandach.
- Operator sizeof zwraca rozmiar zmiennej lub typ danych.
- Operator przecinka wykonuje sekwencję operacji.
- Operator warunkowy ocenia warunek i działa na podstawie wyniku.