This is an excercise in my textbook. I need to find the output of this code.
#include<iostream>
using namespace std;
int main()
{
    int x[]={10,20,30,40,50};
    int *p,**q,*t;
    p=x;
    t=x+1;
    q=&t;
    cout<<*p<<","<<**q<<","<<*t++;
    return 0;
}
The output is
10,30,20
Here I dont understand the declaration of **q, and also how its value comes out to be 30. I also noticed that changing the last statement to
cout<<*p<<","<<**q<<","<<*t;
changes the output to
10,20,20 
Could somebody explain what goes on behind the scenes here? Thanks a lot in advance.
 
     
     
    