Нулевое завершение массива символов

Рассмотрим следующий случай:

#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()не учитывается?

35
задан user369450 7 February 2014 в 17:10
поделиться