Ośmiokątna reprezentacja wewnątrz ciągu w C
W danym programie:
int main() {
char *p = "\0777";
printf("%d %d %d\n",p[0],p[1],p[2]);
printf("--%c-- --%c-- --%c--\n",p[0],p[1],p[2]);
return 0;
}
Pokazuje wyjście jako:
63 55 0
-? - --7-- ----
Rozumiem, że konwertuje dwa pierwsze znaki po0 (077) odósemkowy na dziesiętny ale czy ktoś może mi wyjaśnić, dlaczego 2 postacie, dlaczego nie 1 lub 3 lub jakikolwiek inny?
Proszę wyjaśnić logikę tego.