Representación octal dentro de una cadena en C
En el programa dado:
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;
}
Está mostrando la salida como:
63 55 0
-? --7-- ----
Puedo entender que está convirtiendo los dos primeros caracteres después de\ 0 (\ 077) desdeoctal a decimal pero, ¿puede alguien explicarme por qué 2 caracteres, por qué no 1 o 3 o cualquier otro?
Por favor explique la lógica detrás de esto.