Czytam “Symfonię C++” i jest tam napisane, że znaki ASCII można zapisywać bezposrednio czyli liczbowo. Kod znaku miedzy apostrofami musi być w zapisie ósemkowym lub heksadecymalnym. Ale poza apostrofami może być też dziesiętny prawda ? I też sprawdziłem, że program skompiluje się jeżeli zamiast:
char z1 = '0141',z2 = 'x61'; [/code]
dam tak:
[code=php]char z1 = 0141,z2 = 0x61;
Te zapisy niczym się nie różnią, prawda ?
#include
int main()
{
static_assert(std::is_same::value, "0x61 to int");
static_assert(std::is_same::value, "'\\0x61' to char");
return 0;
}
Pierwszy zapis to rzutowanie 61 na char, a drugi to po prostu stała znakowa. Ten drugi zapis nabiera jeszcze większego znaczenia w literałach łańcuchowych.