[ Nibble @ 03.01.2006. 12:55 ] @
Moze li mi ko objasniti ovaj operator.Nemogu nikako da shvatim njegovu namjenu.Da li moze neko navesti neki primjer gdje se koristi ovaj operator?
[ vladab @ 03.01.2006. 13:12 ] @
da_li_je_ovo_tacno?ako_jeste_uradi_ovo:ako_nije_onda_uradi_ovo_drugo;

:O)
[ Mali Misha @ 03.01.2006. 13:41 ] @
Primer
Code:
int sgn(double x)
{ return x < 0 ? -1 : !!x;}
[ Nibble @ 03.01.2006. 13:47 ] @
Citat:
Mali Misha: Primer
Code:
int sgn(double x)
{ return x < 0 ? -1 : !!x;}


znaci ovdje bi vratio -1 ako je x > 0 a ako je x < 0 vratio bi !x.
Jesam li upravu?
[ fearless @ 03.01.2006. 13:48 ] @
Konkretan primer:

Code:
strncpy(filename, (strrchr(argv[1], '/') ? strrchr(argv[1], '/') + 1 : argv[1]), sizeof(filename));

Dakle, ukoliko je zadata putanja do fajla (npr. /home/shatter/test) ovo ce izdvojiti 'test'. Ovaj primer
sam dao jer sam pre 15 minuta pisao stvar koja je koristila to ;)

Mada ti je i vladab sve rekao :)


[Ovu poruku je menjao fearless dana 03.01.2006. u 14:49 GMT+1]
[ Mali Misha @ 03.01.2006. 14:01 ] @
Citat:
Mali Misha: Primer
Code:
int sgn(double x)
{ return x < 0 ? -1 : !!x;}

Ako je x < 0, vraca -1, u suprotnom !!x. Ove operatore mozes i nadovezivati:

Code:
int sgn(double x)
{
  return
  
  //A
  (
    (x < 0) ? (-1) :

     // B
     ( 
        (x > 0) ? (1) : (0)
     )
   )
   ;
}


A: "Ako je x < 0, vrati -1 a ako ne onda B"
B: "ako je x > 0, vrati 1, a ako ne onde 0"

Sve zagrade ( '(' i ')' ) u primeru su nepotrebne.
[ #Ninja# @ 03.01.2006. 23:55 ] @
A ? B : C

Ekvivalent:

if A
B;
else
C;
[ Mali Misha @ 04.01.2006. 00:10 ] @
To, plus ima krajnju vrednost izraza B ili C, u zavisnosti od toga kojeg izvrsi.