Нулевой завершающий символ представлен как \0
, а не /0
, и он всегда обозначает конец строки, поскольку в C строки на самом деле являются одномерным массивом символов, оканчивающихся нулевым символом \0
.
Это
char s[] = "1230123";
такой же, как этот
char s[] = {'1', '2', '3', '0', '1', '2', '3', '\0'};
| |
This is character '0' |
whose decimal value is 48 |
|
This is null terminating character
whose decimal value is 0
Проверьте этот пример:
#include <stdio.h>
int main (void)
{
int x,y,z;
char s1[] = "1230123";
char s2[] = {'1','2','3','\0','4','5','6','\0'};
printf ("%s\n", s1);
printf ("%s\n", s2);
return 0;
}
Выход:
1230123
123 <======= The characters after null terminating character is not printed.