Вдохновленный программой, описанной в разделе K & R section 5.5:
void strcpy(char *s, char *t)
{
while(*s++ = *t++);
}
Программа C
if ('\0') { printf("\'\\0\' -> true \n"); }
else { printf("\'\\0\' -> false\n"); }
if ("\0") { printf("\"\\0\" -> true \n"); }
else { printf("\"\\0\" -> false\n"); }
печатает
'\0' -> false
"\0" -> true
Почему '\0'
и "\0"
оцениваются по-разному в C?
clang version 3.8.0