¿Cómo es que el terminador de cadena '\ 0' tiene el mismo valor que la constante entera 0?
Tengo el siguiente código -
#include <stdio.h>
#define LENGTH 5
int main(){
char* ch[LENGTH] = {"Zero", "One", "Two", "Three", "Four"};
char* pc;
char** ppc;
for(int i=0; i<LENGTH; i++){
ppc = ch+i;
pc = *ppc;
while(*pc != 0){
printf("%c ", *pc);
pc = pc +1;
}
printf("\n");
}
return 0;
}
Es un ejemplo de indirección múltiple usando cadena.
La salida es
Z e r o
O n e
T w o
T h r e e
F o u r
Aquí enwhile()
bucle en lugar de*pc != '\0'
, *pc != 0
es usado
Pero ambos enfoques dan el mismo resultado. ¿Por que es esto entonces?