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

  • dobragab

    addikt

    válasz mepet #5506 üzenetére

    C++-ban a character literal típusa char, mégpedig azért, hogy működjenek az overload-ok (pl. operator<<). Az unáris operator+ igazából semmit nem csinál, csakis azért van, hogy le tudd írni:
    int i = +5;
    Illetve mégis csinál valamit: minden egész művelet operandusai minimum int-re kasztolódnak fel, és a végeredménye is minimum int. Ezért +'a' már int típusú. Tehát az output C++-ban 14.

    C-ben a character literal típusa int, az unáris operator+ esetén ugyanúgy megvan az upcast, csak ugye int-ről int-re. C-ben a végeredmény 44.

    %zu csak C99-ben és C++-ban van, így C-ben kell az -std=c99. MSVC-t ne használj C-re :P
    Fogadjunk, hogy te a C++-os megoldást mondtad :)

    [ Szerkesztve ]

    Tudom, tudom, akasszak a tökömre egy lámpát, hogy sötétben is tudjak kaszálni.

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