Восьмеричное представление внутри строки в C
В данной программе:
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;
}
Он показывает вывод как:
63 55 0
--?-- --7-- ----
Я могу понять, что это преобразование первых двух символов после\0 (\ 077) изoctal to decimal но может ли кто-нибудь объяснить мне, почему 2 символа, почему не 1 или 3 или любой другой?
Пожалуйста, объясните логику этого.