У меня возникли проблемы с пониманием того, почему размещение * за скобками приводит к изменению значения. Я понимаю, почему 2 печатает, однако я не понимаю, почему 3 печатает. Любая помощь будет оценена, спасибо.
int main()
{
//delcaring typedef of boxes
typedef int boxes[2][2];
//delcaring variables that are going to be placed into the boxes
int a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8;
//declaring two boxes variables and storing variables
boxes myBox={{a,b},{c,d}};
boxes myBox2={{e,f},{g,h}};
//placing those boxes into a pointer boxes array
boxes *x[2][2]={{&myBox,&myBox2,},{&myBox,&myBox2}};
//testing code
cout<<(*x[0][0])[0][1]<<endl; //prints out 2
cout<<*(x[0][0])[0][1]<<endl; //prints out 3
}