Duvida basica em C

Olá pessoal outra dúvida básica em C, estou lendo o livro do Dennis Ritchie na versão em português além de ele me falar arranjo ao invés de array, os códigos dos primeiros programas tem algumas falhas como esse:

#include <stdio.h>

#define END -1

int main(void)
{
	int c;

	while((c = getchar()) != END)
		putchar(c);
	

	return 0;
}

O programa simplesmente não para quando digito -1, e está exatamente como está no livro, pesquisei na internet sobre isso, e está correto. Tem alguma coisa que não a lógica mas na sintaxe muito incorreta ai.

Esse programa tem de parar quando você digita Ctrl+D (no Unix ou Linux) ou Ctrl+Z (no Windows). De fato, -1 é o retorno do método getchar() quando a entrada de dados acaba, não o valor que você tem de digitar para parar de ler dados.

Hmm, se é assim sim. Vlw