ANSI C 4

ANSI C 4



DODATEK A PRZEWODNIK JĘZYKA C_______

wynikiem jest 1; jeśli odnosi się do tablicy, to wynikiem jest całkowita liczba bajtów zajmowanych przez tablicę. Jeśli odnosi się do struktury lub unii, to wynikiem jest liczba bajtów zajmowanych przez ten obiekt z uwzględnieniem bajtów, którymi należałoby ewentualnie go uzupełnić, by mógł być elementem tablicy' - rozmiar tablicy o n elementach równa się n razy rozmiar jednego elementu. Operator nie może odnosić się do funkcji, niekompletnego typu lub pola bitowego. Wynikiem jest stała całkowita bez znaku. Typ wyniku zależy od implementacji; w standardowym nagłówku <stddef.h> (patrz dodatek B) typ ten zdefiniowano jako size_t.

A7.5 Rzutowanie

Poprzedzenie wyrażenia jednoargumentowego nazwą typu ujętą w nawiasy powoduje przekształcenie wartości tego wyrażenia do wskazanego typu.

wy rażenie-rzutowania:

wyraienie-jednoargumentowe ( nazwa-typu ) wyratenie-rzutowania

Taka konstrukcja nazywa się rzutem. Nazwy typów są opisane w p. A8.8, a skutki przekształceń w p. A6. Wyrażenie rzutowania nie jest 1-wartością.

A7.6 Operatory multyplikatywne

Operatory multyplikatywne *, / i % są lewostronnie łączne.

wyraienie-multyplikatywne: wyratenie-rzutowania

wyraienie-multyplikatywne * wyratenie-rzutowania wyraienie-multyplikatywne / wyratenie-rzutowania wyraienie-multyplikatywne % wyratenie-rzutowania

Argumenty operatorów * i / muszą mieć typ arytmetyczny; argumenty operatora % muszą być całkowite. Argumenty podlegają zwykłym przekształceniom arytmetycznym, które również określają typ wyniku.

Dwuargumentowy operator * oznacza mnożenie.

Chodzi o to, że wszystkie elementy dowolnej tablicy muszą być prawidłowo położone w pamięci. - Przyp. tłum.

A7 WYRAŻENIA

Dwuargumentowy operator / daje w wyniku iloraz, a operator % — r pierwszego argumentu przez drugi. Wynik nie jest zdefiniowany, jeśli drugi argument równa się zero. W pozostałych przypadkach zawsze jest prawdą, że (a/b)*b + a%b równa się a. Jeśli oba argumenty są nieujemne, to reszta jest nieujemna i jest mniejsza niż dzielnik; w przeciwnym przypadku gwarantuje się tylko tyle, że wartość bezwzględna reszty jest mniejsza niż wartość bezwzględna dzielnika.

A7.7 Operatory addytywne

Operatory addytywne -I- i - są lewostronnie łączne. Jeśli oba argumenty mają typy arytmetyczne, to podlegają zwykłym przekształceniom arytmetycznym. Możliwe są również inne kombinacje typów argumentów tych operatorów.

wyrażeń ie-addyty wne:

wyraienie-multyplikatywne

wy rażenie-addytywne + wyraienie-multyplikatywne wyrażenie-addytywne - wyrażenie-multyplikatywne

Operator + daje w wyniku sumę swoich argumentów. Do wskaźnika do elementu dowolnej tablicy można dodać wartość o dowolnym typie całkowitym. Tę wartość przekształca się na przesunięcie adresowe, mnożąc ją przez rozmiar wskazywanego obiektu. Wynik jest wskaźnikiem tego samego typu, co wskaźnik początkowy, i wskazuje na inny element tej samej tablicy odpowiednio przesunięty względem elementu początkowego. Zatem jeśli P jest wskaźnikiem do elementu pewnej tablicy, to wyrażenie P+1 jest wskaźnikiem do następnego elementu tej tablicy. Wynik operacji nie jest zdefiniowany, jeśli otrzymany wskaźnik pokazuje poza obszar tablicy, za wyjątkiem pierwszej pozycji za koncern tablicy.

Dopuszczenie wskaźników pokazujących tuż za koniec tablicy jest nowe. Sankcjonuje to idiom powszechnie stosowany przy przeglądaniu elementów tablic.

Operator - daje w wyniku różnicę swoich argumentów. Od wskaźnika można odjąć wartość dowolnego typu całkowitego; obowiązują wtedy te same przekształcenia i ograniczenia, jak w przypadku dodawania.

Wynikiem odjęcia od siebie dwóch wskaźników tego samego typu jest wartość całkowita ze znakiem, odpowiadająca odstępowi między wskazywanymi obiektami; wskaźniki wskazujące na kolejne obiekty różnią się o 1. Typ wyniku zależy od implementacji; w standardowym nagłówku <stddef.h> jest on zdefiowany jako ptrdiff_t. Wynik nie jest zdefiniowany, jeśli wskaźniki nie wskazują na elementy tej samej tablicy; jeśli jednak P wskazuje na ostatni element tablicy, to (P+1)-P równa się 1.

271


Wyszukiwarka

Podobne podstrony:
ANSI C 4 DODATEK A PRZEWODNIK JĘZYKA C ____—-- stropy jest funkcją zwracającą wartość całkowitą i
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____ Wynikiem tej operacji jest bitowa różnica symetryczna
ANSI C 4 DODATEK A PRZEWODNIK JĘZYKA C_____ wiersz-elif: #    elit
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____.____A2.5.2 Stałe znakowe Stała znakowa jest ciągiem zł
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C_______—- Gdy wartość całkowita jest przekształcana do typu
ANSI C 3 DODATEK A PRZEWODNIK JĘZYKA C____- tablicą o pięciu elementach, z których każdy jest tabl
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C Struktury i tablice są obiektami złożonymi. Jeśli obiekt zł
ANSI C 0 DODATEK A PRZEWODNIK JĘZYKA C_______ int max(a, b, c) int a, b, c;{ /* .» *1} gdzie dekla
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C_________A2.1 Jednostki leksykalne Istnieje sześć klas jedno
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C------- czaj umieszczane w oddzielnych wierszach; w kilku pr
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA C_________ Wszystkie z typów zmiennopozycyjnych: pojedynczej
ANSI C 0 DODATEK A PRZEWODNIK JĘZYKA C_________ Obiekt typu całkowitego można jawnie przekształcić
ANSI C 1 DODATEK A PRZEWODNIK JĘZYKA C Implementacje różnią się reakcjami na dzielenie przez zero
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA C W pierwszym wydaniu książki typ wyrażenia przyrostkowego by
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA CA7.8 Operatory przesunięcia Operatory przesunięcia « i » są
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C__________ rekurencyjnie, podskładowych nie może być kwalifi
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C________■ Kwalifikatory typu wskazują specjalne właściwości
ANSI C 0 DODATEK A PRZEWODNIK JĘZYKA C ___——- łujących się do samych siebie: struktura lub unia mo

więcej podobnych podstron