Udostępnij za pośrednictwem


Odejmowanie (-)

Operator odejmowania (-) odejmuje drugi operand od pierwszego. Oba operandy mogą być typami całkowitymi lub zmiennoprzecinkami albo jeden operand może być wskaźnikiem i drugą liczbą całkowitą.

Gdy odejmowane są dwa wskaźniki, różnica jest konwertowana na wartość całkowitą ze znakiem przez podzielenie różnicy przez rozmiar wartości typu, który adres wskaźników. Rozmiar wartości całkowitej jest definiowany przez typ ptrdiff_t w standardowym pliku STDDEF.H. Wynik reprezentuje liczbę pozycji pamięci tego typu między dwoma adresami. Wynik jest gwarantowany tylko dla dwóch elementów tej samej tablicy, co omówiono w arytmetyce wskaźnika.

Gdy wartość całkowita jest odejmowana od wartości wskaźnika, operator odejmowania konwertuje wartość całkowitą (i), mnożąc ją przez rozmiar wartości wskaźnika. Po konwersji wartość całkowita reprezentuje pozycje pamięci i , gdzie każda pozycja ma długość określoną przez typ wskaźnika. Gdy przekonwertowana wartość całkowita jest odejmowana od wartości wskaźnika, wynikiem jest położenie adresu i pamięci przed oryginalnym adresem. Nowy wskaźnik wskazuje wartość typu adresowanego przez oryginalną wartość wskaźnika.

Zobacz też

Operatory dodawania języka C