Hirdetés

Új hozzászólás Aktív témák

  • pvt.peter
    őstag

    Jah, megnéztem a forráskódot és az előző hozzászólásom tárgytalan. :) Este van :)

    int main(){
    int a=5, b=2;
    a= b ? b=b+(a=a+b--) : b+++--a;

    a b nem nulla volt azért a kif1 ? kif2 : kif3 operátor a kif2 kifejezés kiértékelődésével folytatódik.
    b=b+(a=a+b--) Értékadó kifejezés a kif jobb oldalának a kiértékelődésével kezdődik.
    (a=a+b--)
    a = 5+2 majd a b értéke a zárójeles kif kiért. után csökken eggyel. Ez okozza, hogy a végén a két szám eggyel eltér.
    b=2+6 (mert a zárójeles kifnél csökkent a b értéke eggyel)
    Majd végül
    a = 2+7

    Szerk.: (bocs a megfogalmazásért, fáradt voltam :) )

    int a=5, b=2;
    a= b ? b=b+(a=a+b--) : b+++--a;

    lehet, hogy rosszul tudom de én ezt így csinálnám:

    b=b+(a=a+b--)
    b értékét csökkentem eggyel, mert először az egy operandusú műveleteket hajtjuk végre,
    tehát b=1
    utána a=5+1, tehát a=6
    utána b=1+6, tehát b=7

    vhogy nekem sehogy sem tűnik jónak ez az egész

Új hozzászólás Aktív témák