DODATEK A PRZEWODNIK JĘZYKA C
Implementacje różnią się reakcjami na dzielenie przez zero i na wszystkie błędy w rachunku zmiennopozycyjnym; te błędy są niekiedy obsługiwane przez niestandardowe funkcje biblioteczne.
Jeśli typem wyrażenia lub podwyrażenia jest „tablica elementów typu T\ dla pewnego typu T, to wartością wyrażenia jest wskaźnik do pierwszego elementu tej tablicy, a typ wyrażenia zmienia się na „wskaźnik do typu T\ Takie przekształcenie nie zachodzi, gdy wyrażenie jest argumentem jednoargumentowego operatora &, operatorów ++, —, sizeof lub lewym argumentem operatorów przypisania lub . (kropka). Podobnie wyrażenie typu „funkcja zwracająca typ T\ jeśli nie jest argumentem operatora &, przekształca się do typu „wskaźnik do funkcji zwracającej typ T”.
Wyrażeniami prostymi są: identyfikatory, stałe, napisy lub wyrażenia w nawiasach.
wyraienie-proste:
identyfikator
stała J ‘
napis
( wyrażenie )
Identyfikator jest wyrażeniem prostym pod warunkiem, że został odpowiednio zadeklarowany (patrz p. A8). Deklaracja określa typ identyfikatora. Identyfikator jest l-wartością, jeżeli odnosi się do jakiegoś obiektu (p. A5) i jest typu arytmetycznego, strukturą, unią lub wskaźnikiem.
Stała jest wyrażeniem prostym. Jej typ zależy od jej postaci, tak jak to opisano w p. A2.5.
Napis jest wyrażeniem prostym. Jego początkowym typem jest „tablica znakowa" (dla rozszerzonych napisów - „tablica elementów typu wchar_t"), ale w następstwie reguł podanych w p. A7.1 ten typ zwykle zmienia się do typu „wskaźnik do char" (wchar_t), a wynikiem jest wskaźnik do pierwszego znaku napisu. (Wyjątkami są pewne inicjatory - patrz p. A8.7).
Wyrażenie w nawiasach jest wyrażeniem prostym. Jego typ i wartość są takie same. jak typ i wartość wyrażenia bez nawiasów. Nawiasy nie mają wpływu na to, czy wyrażenie jest l-wartością.
A7 WYRAŻENIA _I powered by
A7.3 Wyrażenia przyrostkowe I
Operatory w wyrażeniach przyrostkowych są lewostronnie łączne.
wyrażenie-przyrostkowe: wyrażeń i e-pros te
wyratenie-przyrostkowe [ wyrażenie ] wyrażenie-przyrostkowe (lista-argumentównjK ) wyratenie-przyrostkowe . identyfikator wyrażenie-przyrostkowe -> identyfikator wyrażenie-przyrostkowe ++ wyrażenie-przyrostkowe —
lista-argumentów:
wyrażenie-przypisania lista-argumentów , wyrażenie-przypisania
Wyrażenie przyrostkowe, po którym następuje wyrażenie ujęte w nawiasy prostokątne, jest wyrażeniem przyrostkowym oznaczającym indeksowane odwołanie do tablicy. Jedno z tych wyrażeń musi być typu „wskaźnik do typu T\ dla pewnego typu 7, a drugie typu całkowitego; typem całego wyrażenia indeksowego jest 7. Wyrażenie E1 [E2J jest identyczne (z definicji) z wyrażeniem *((E1)+(E2)). Dalsze wyjaśnienia na ten temat znajdują się w p. A8.6.2.
Wywołanie funkcji składa się z wyrażenia przyrostkowego, zwanego oznacznikiem funkcji, po którym następuje ujęta w nawiasy okrągłe lista (być może pusta) wyrażeń przypisania (p. A7.17). Wyrażenia przypisania, oddzielone od siebie przecinkami, tworzą argumenty funkcji. Jeśli wyrażenie przyrostkowe jest identyfikatorem, dla którego w odpowiednim zasięgu nie ma deklaracji, to identyfikator ten jest domyślnie deklarowany tak, jakby w najbardziej wewnętrznym bloku zawierającym wywołanie funkcji występowała deklaracja
extern int identyfikator ();
Wyrażenie przyrostkowe (być może po domyślnej deklaracji i generacji wskaźnika -p. A7.1) musi być typu „wskaźnik do funkcji zwracającej typ 7”, dla pewnego typu Ty a wartość wywołania funkcji ma typ T.
265