02 tipovi, operatori i izrazi
DESCRIPTION
02 Tipovi, operatori i izraziTRANSCRIPT
-
STRUKTURE PODATAKA I ALGORITMI 1Tipovi, operatori i izrazi
-
NAZIVI PROMENLJIVIHNazivi se sastoje od slova i brojevaZnak _ se smatra slovom i koristi se za poboljanje itljivosti dugakih naziva promenljivihNe poinjite naziv promenljive znakom _ zato to biblioteke esto koriste takve naziveC razlikuje velika i mala slova (x i X su razliite promenljive)Najee se promenljive piu malim slovima, a konstante sa svim velikim slovimaif, else, int, float itd. su rezervisane rei i ne mogu se koristiti kao promenljive. Piu se iskljuivo malim slovima
-
TIPOVI I VELIINA PODATAKAchar-1 bajt, uva jedan karakter (znak)int-ceo broj, veliina zavisi od mainefloat-broj sa pokretnim zarezom jednostruke tanostidouble-broj sa pokretnim zarezom dvostruketanosti
short int, long int, short, longsigned, unsignedsigned char-od -127 do 128unsigned char-od 0 do 255
-
KONSTANTEint1234long123456789l ili 123456789Lusigned long123456ul ili 123456ULdouble123.4 ili 1e-2float123.4f ili 123.4F
dekadni31oktalni037heksadekadni0x1f ili 0x1F
-
KONSTANTNI IZRAZIIzrazi u kojima uestvuju samo konstante izraunavaju se prilikom kompajliranja
#define MAXLINE 1000char line[MAXLINE+1];
ili
#define PRESTUPNA 1 /* u prestupnoj godini */int dani[31+28+PRESTUPNA+31+30+31+30+31+31+30+31+30+31];
-
STRING KONSTANTE"Ja sam string""" /* prazan string */"hello, " "world"je isto to i"hello, world"
Stringovi su nizovi karaktera koji se zavravaju znakom \0/* strlen: return length of s */int strlen(char s[]){int i;
while (s[i] != '\0')++i;
return i;}
Funkcije za rad sa stringovima: 'a' nije isto to i "a"
-
NABROJIVE KONSTANTE
enum {vrednost1, vrednost2,...};
Primerenum logicki {NETACNO, TACNO};
enum months { JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC };
-
DEKLARACIJEint lower, upper, step;char c, line[1000];iliint lower;int upper;int step;char c;char line[1000];
Inicijalizacija prilikom deklarisanjaint i = 0;int limit = MAXLINE+1;float eps = 1.0e-5;char esc = '\\';
Promenljive ija se vrednost ne moe menjaticonst double e = 2.71828182845905;const char msg[] = "warning: ";
int strlen(const char[]);
-
ARITMETIKI OPERATORI+, -, *, /-sabiranje, oduzimanje, mnoenje i deljenje%-ostatak pri deljenjuif ((godina % 4 == 0 && godina % 100 != 0) || godina % 400 == 0)printf("%d je prestupna godina\n", godina);elseprintf("%d nije prestupna godina\n", godina);
- RELACIONI I LOGIKI OPERATORIRelacioni operatori> >= <
-
KONVERZIJA TIPOVAint u floatf+ichar u int
-
KONVERZIJA CHAR U INT/* atoi: convert s to integer */int atoi(char s[]){int i, n;
n = 0;for (i = 0; s[i] >= '0' && s[i]
-
EKSPLICITNA KONVERZIJAcast operator(novi tip) izraz
double sqrt(double x){...}
...
sqrt( (double) n )
...
root = sqrt(2)
-
INKREMENT I DEKREMENT++-uveava vrednost za jedan---umanjuje vrednost za jedan
n=5;
x=++n; /* prvo se n uvecava za 1, pa x dobija vrednost 6 */
x=n++; /* prvo x dobija vrednost 5, pa se n uvecava za 1 */
s[i++] = c;s[i] = c; s[i] = c;i++; ++i;
-
/* squeeze: delete all c from s */void squeeze(char s[], int c){int i, j;for (i = j = 0; s[i] != '\0'; i++)if (s[i] != c)s[j++] = s[i];s[j] = '\0';}
/* strcat: concatenate t to end of s; s must be big enough */void strcat(char s[], char t[]){int i, j;
i = j = 0;while (s[i] != '\0') i++;/* find end of s */
while ((s[i++] = t[j++]) != '\0');/* copy t */}
-
BINARNI OPERATORI&-logiko I nad bitovima|-logiko ILI nad bitovima^-logiko iskljuujue ILI nad bitovima>-pomeranje u desno~-komplement jedinice (unarni operator)
-
OPERATORI I IZRAZI DODELJIVANJAi = i + 2i += 2i = i * 3i *= 3Za bilo koji operator op iz skupa+ - * / % < > & ^ |
izr1 op= izraz2 izr1 = (izr1) op (izr2)
x *= y + 1x = x * (y + 1) a ne x = x * y + 1
Za bilo koji od operatora+ - * / % < > & ^ |
-
USLOVNI IZRAZIOdreivanje maksimuma od a i bif (a > b)z = a;elsez = b;Ternarni operatorizr1 ? izr2 : izr3
z = (a > b) ? a : b; /* z = max(a, b) */
(n > 0) ? f : nje izraz tipa float
-
PRIORITET OPERATORA
OperatoriAsocijativnost() [] -> . sa leva na desno! ~ ++ -- + - * (type)sizeof sa desna na levo* / % sa leva na desno+ - sa leva na desno> sa leva na desno< >= sa leva na desno== != sa leva na desno& sa leva na desno^ sa leva na desno| sa leva na desno&& sa leva na desno|| sa leva na desno?: sa desna na levo= += -= *= /= %= &= ^= |= = sa desna na levo, sa leva na desno