Все массивы символов автоматически завершаются нулем -?

Наверное, я слишком тупой, чтобы гуглить,но я всегда думал, что массивы символов получают только нулевое значение, завершающееся буквальной инициализацией(char x[]="asdf";)и немного удивился, когда увидел, что это не так.

int main()
{
    char x[2];
    printf("%d", x[2]);
    return 0;
}

Выход :0

Разве массив, объявленный как size=2 *char, на самом деле не должен иметь размер 2 символа? Или я что-то не так здесь делаю? Я имею в виду, что массив символов нередко используется как простой массив символов, а не как строка, или нет?

9
задан user1329846 27 June 2012 в 15:13
поделиться