Восьмеричное представление внутри строки в 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 или любой другой?

Пожалуйста, объясните логику этого.

Ответы на вопрос(2)

Ваш ответ на вопрос