ANSI C 2

ANSI C 2



2 TYPY, OPERATORY I WYRAŻENIA_____—

kiej zmiennej, jest poprawną wartością wyliczenia. Zmienne wyliczeniowe dają jednak szansę takiej kontroli, a więc są często lepsze niż #define. Co więcej, program uruchomieniowy (ang. debugger) czasem potrafi wypisywać wartości zmiennych wyliczeniowych w ich symbolicznej postaci.


Deklaracje

Wszystkie zmienne muszą być zadeklarowane przed użyciem, chociaż pewne deklara-J cje można podać niejawnie przez kontekst. W deklaracji określa się typ, a następnie wymienia jedną lub kilka zmiennych tego typu, np.

int lower, upper, step;

char c, line[1000];    |

Zmienne można deklarować na wiele sposobów; powyższy przykład równie dobrze może wyglądać następująco:    jł

int lower;    I

int upper; int step;

char c;    j

char line[1000];    I

Ten drugi sposób zajmuje więcej miejsca, lecz jest wygodny przy dodawaniu komentarza do każdej deklaracji lub dla    późniejszych zmian.    ■

W deklaracjach można także nadawać zmiennym wartości początkowe. Gdy po nazwie zmiennej występuje znak = i pewne wyrażenie, wówczas wyrażenie to pełni rolę inicjatora, jak w następujących przykładach:    j.

char esc = ’\Y;    I

int i = 0;    I

int limit = MAXLINE+1;    1

float eps = 1 .Oe-5;    I

Jeśli zmienna, o której mowa, nie jest automatyczna, to wartość początkową nad# się jej tylko raz - jak gdyby przed rozpoczęciem wykonywania programu; jej inicjale rem musi być wyrażenie stałe. Zmiennym automatycznym jawnie określone wartom początkowe nadaje się za każdym razem przy wywołaniu funkcji lub przy wejściu dzawierającego je bloku; tutaj inicjatorem może być dowolne wyrażenie. Zmienny** zewnętrznym i statycznym przez domniemanie nadaje się wartość początkową zer

2.5 OPERATORY ARYTMETYCZNE ____I poweredjąy

| Mi sio 1

Zmienne automatyczne bez jawnie określonej wartości początkowali (11)4 Wiłrtosci przypadkowe (tj. śmiecie).

Kwalifikator const (stały) można zastosować do deklaracji dowolnej zmiennej; mówi ont że wartość tej zmiennej nie będzie zmieniana. Użycie kwalifikatora const w deklaracji tablicy oznacza, że żaden z jej elementów nie ulegnie zmianie.

const double e = 2.71828182845905; const char msg[] = "Uwaga:

Deklarację const można również zastosować do tablicowych parametrów funkcji, by wskazać, że funkcja ma nie zmieniać takiej tablicy:

int strlen (const char[ ]);

Próba zmiany wartości zmiennej zadeklarowanej jako const kończy się w sposób zależny od implementacji.


Operatory arytmetyczne

Dwuargumentowymi operatorami arytmetycznymi są +, -, *, / oraz operator dzielenia modulo %. Dzielenie całkowite obcina część ułamkową wyniku. Wyrażenie

x % y

daje w wyniku resztę z dzielenia X przez y, jest zatem równe zero, gdy y jest podzielnikiem x. Na przykład rok jest przestępny, jeżeli jest podzielny przez 4 i nie dzieli się przez 100 - z wyjątkiem lat podzielnych przez 400 (są przestępne). A więc

if ((year % 4 == 0 && year % 100 != 0) 11 year % 400 == 0) printf(”%d jest rokiem przestępnym\n”, year); else

printf(”%d nie jest rokiem przestępnym^”, year);

Operatora % nie można stosować do danych typu float i double. Dla ujemnych argumentów operacji zarówno kierunek zaokrąglania wyniku po obcięciu części ułamkowej przez dzielenie całkowite /, jak i znak liczby, która jest wynikiem dzielenia modulo %, są zależne od maszyny. Akcje podejmowane po wystąpieniu nadmiaru lub niedomiaru także zależą od maszyny.

Dwuargumentowe operatory + i - mają ten sam priorytet. Jest on niższy niż priorytet operatorów *, / oraz %, który z kolei jest niższy niż priorytet jednoargumentowych operatorów + i -. Operatory arytmetyczne są lewostronnie łączne.

67


Wyszukiwarka

Podobne podstrony:
ANSI C 9 TYPY, OPERATORY I WYRAŻENIA Zmienne i stałe są podstawowymi obiektami danych, jakimi posł
ANSI C 8 2 TYPY, OPERATORY I WYRAŻENIA________ -077 jest wyrażeniem stałym, które może być obliczo
ANSI C 0 2 TYPY, OPERATORY I WYRAŻENIA Kwalifikatory signed (ze znakiem liczby) i unsigned (bez zn
ANSI C 1 2 TYPY, OPERATORY I WYRAŻENIA Stała znakowa ’’ reprezentuje znak o wartości zero, tzw. z
ANSI C 3 2 TYPY, OPERATORY I WYRAŻENIA_______ W tablicy 2.1 na końcu tego rozdziału podano prioryt
ANSI C 4 2 TYPY, OPERATORY I WYRAŻENIA__.______ n = 0; for (i = 0; s[i] >= ’0’ && s[i]
ANSI C 5 2 TYPY. OPERATORY I WYRAŻENIA • Następnie, jeśli którykolwiek z argumentów ma kwalifikato
ANSI C 6 2 TYPY, OPERATORY I WYRAŻENIA unsigned long int next = 1; I* rand: daj pseudo-losowo licz
ANSI C 7 2 TYPY, OPERATORY I WYRAŻENIA możemy zapisać w bardziej zwartej postaci if (c != ’

ANSI C 9 2 TYPY, OPERATORY I WYRAŻENIA______________ „weź i, dodaj 2, a następnie umieść wynik z p
ANSI C 0 2 TYPY, OPERATORY I WYRAŻENIA struktury; będą szczegółowo opisane w rozdz. 6 razem z oper
Operatory i wyrażenia• Wyrażenie jest kombinacją stałych, zmiennych i operatorów, stosowaną do zapis
ANSI C 2 4 FUNKCJE I STRUKTURA PROGRAMU Deklaracja double sum, atof(char[ ]); mówi, że zmienna sum
ANSI C 8 1 ELEMENTARZ jest wyrażeniem i ma wartość - jest nią wartość lewego argumentu przypisania
ANSI C 2 3 STEROWANIE Dwuznaczność la jest szczególnie szkodliwa w sytuacjach podobnych do tej:
ANSI C 2 5 WSKAŹNIKI I TABLICE _______^ operator przyrostkowy ++ nie zmieni t, dopóki nie zostanie
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA C W pierwszym wydaniu książki typ wyrażenia przyrostkowego by
Zdjŕcie0532 Błędy bezwzględne i względne. Na prostszym sposobem wyrazema błędu oznaczenia jest podan

więcej podobnych podstron