Рассмотрим следующий случай:
#include<stdio.h>
int main()
{
char A[5];
scanf("%s",A);
printf("%s",A);
}
Мой вопрос в том, что char A[5]
содержит только два символа. Скажите "ab", затем A[0]='a'
, A[1]='b'
и A[2]='\0'
.
Но если вход скажет: "abcde", тогда где '\0'
в этом случае. Будет ли A[5]
содержать '\0'
?
Если да, то почему?
sizeof(A)
всегда будет возвращать 5 в качестве ответа. Затем, когда массив заполнен, есть ли дополнительный байт, зарезервированный для '\0'
, который sizeof()
не учитывается?