12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

11.3. OPERACIJE NAD POKAZIVAČIMA 181Funkcija kopira polje znakova na koje pokazuje t u polje na koje pokazuje s.Kopiranje se zaustavlja kada se kopira nul znak ’\0’.Istu funkciju možemo izvesti i bez uglatih zagrada, koristeći aritmetikupokazivača.void strcpy(char *s, char *t){while((*s = *t) != ’\0’) {s++; t++;}}Ovdje koristimo viši prioritet operatora dereferenciranja od operatora pridruživanjai inkrementiramo pokazivače umjesto indeksa. Budući da unarnioperatori imaju asocijativnost zdesna na lijevo gornji kôd možemo skratiti ipisativoid strcpy(char *s, char *t){while((*s++ = *t++) != ’\0’) ;}Pokazivači s i t bit će povećani nakon što pridruživanje bude izvršeno.Konačno, kôd možemo još malo skratiti ako uočimo da je ...!=’\0’ usporedivanjeizraza s nulom, pa možemo pisativoid strcpy(char *s, char *t){while(*s++ = *t++) ;}Naravno, ovakav kôd slabo izražava namjeru programera te ga treba izbjegavati.11.3.6 Generički pokazivačPokazivači na različite tipove podatatka općenito se ne mogu pridruživati.Na primjer,char *pc;int *pi;.....pi=pc; /* NEISPRAVNO */

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!