Hirdetés

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

  • dobragab
    addikt

    (#5504) don_peter: ja, hogy nem nem is parancssoros, így már mindent értek. :)

    (#5505) dobragab: szóval akkor eltaláltam? (C-ben természetesen)

    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 :)

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