Como o terminador de cadeia '\ 0' tem o mesmo valor que a constante inteira 0?
Eu tenho o seguinte 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;
}
É um exemplo de indireção múltipla usando string.
A saída é
Z e r o
O n e
T w o
T h r e e
F o u r
Aqui emwhile()
loop em vez de*pc != '\0'
, *pc != 0
é usado.
Mas ambas as abordagens fornecem a mesma saída. Por que é tão?