Cout giá trị vượt quá độ lớn của mảng kí tự?

em tạo 1 mảng kí tự với đọ lớn là 2, nhưng khi em cout giá trị thứ 5 thì nó vẫn xuất ra đúng, và hàm main return về 1 giá trị khổng lồ nào đó, em không hiểu ạ(tại sao lại cout được a[5] ạ, tại sao main lại return ra cái đó?), ai giúp em với ạ

#include<iostream>
using namespace std;
int main()
{
char a[2];
cout<<"nhap gia tri a[2] = ";
cin>>a;
cout<<a[1]<<"     ";
cout<<a[0];
cout<<a[5];
return 0;
}

em có ảnh đây ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?