Рассмотрим следующий случай:
#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()
не учитывается?