C základ

Programovacie jazyky, rady, poradňa...
Mick_14
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 458
Registrovaný: 07 aug 2008, 18:44

C základ

Príspevok od používateľa Mick_14 »

Kód: Vybrať všetko

      int x=4, y=9, tmp;
      
      x = ( tmp = y, y = y + 1, tmp );
      printf("X je %d a Y je %d\n", x, y);
Y bude 10, to mi je jasné lebo je tam priradenie y = y + 1 ale prečo X bude 9? čo sa priradí do X, to tmp = y čiže vlastne y? a na konci tmp je načo?
ďakujem :)
edit: Ďakujem :)
Spixy
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1334
Registrovaný: 24 okt 2010, 12:52

Re: C základ

Príspevok od používateľa Spixy »

lebo to zrejme urobi:

Kód: Vybrať všetko

x = tmp;
kedze tmp = y (9), tak aj x=9

ale takýto divny kód som ešte v živote nevidel. niekedy sa az čudujem na čom tí programátori fičia :smt033
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C základ

Príspevok od používateľa harrison314 »

Operator , ( ciarka ) v norme pre C nema definovanu prioritu vyhodnotenia a preto vysledok tvojho kodu zavisi iba od pouziteho komplilatora.
Napísať odpoveď