Kurs programowania w C cz. 32

Nasza ocena:

5
Wyświetleń: 602
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C cz. 32 - strona 1

Fragment notatki:

46 ROZDZIAŁ 8. OPERATORY •  post-inkrementacja  (“i++”), •  pre-dekrementacja  (“–i”) i •  post-dekrementacja  (“i–”). Operatory inkrementacji zwiększa, a dekrementacji zmniejsza argument o jeden. Ponadto operatory pre- zwracają nową wartość argumentu, natomiast post- starą war- tość argumentu. int a, b, c; a = 3; b = a--; /* po operacji b=3 a=2 */ c = --b; /* po operacji b=2 c=2 */ Czasami (szczególnie w C++) użycie operatorów stawianych za argumentem jest nieco mniej efektywne (bo kompilator musi stworzyć nową zmienną by przechować wartość tymczasową). Bardzo ważne jest, abyśmy poprawnie stosowali operatory dekrementacji i inkre- mentacji. Chodzi o to, aby w jednej instrukcji nie umieszczać kilku operatorów, które modyfikują ten sam obiekt (zmienną). Jeżeli taka sytuacja zaistnieje, to efekt działania instrukcji jest nieokreślony. Prostym przykładem mogą być następujące instrukcje: int a = 1; a = a++; a = ++a; a = a++ + ++a; printf("%d %d\n", ++a, ++a); printf("%d %d\n", a++, a++); Kompilator GCC potrafi ostrzegać przed takimi błędami - aby to czynił należy podać mu jako argument opcję -Wsequence-point. Operacje bitowe Oprócz operacji znanych z lekcji matematyki w podstawówce, język C został wy- posażony także w operatory bitowe, zdefiniowane dla liczb całkowitych. Są to: • negacja bitowa (“ ”), • koniunkcja bitowa (“&”), • alternatywa bitowa (“—”) i • alternatywa rozłączna (XOR) (“ˆ”). Działają one na poszczególnych bitach przez co mogą być szybsze od innych ope- racji. Działanie tych operatorów można zdefiniować za pomocą poniższych tabel: ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz