关于指针与数组的c语言程序,详细解答一下

#include "stdio.h"
int main( )
{
int a[5]={1,2,3,4,5}, *p=a, *r;
long *q;

q=(long* )p;

q++;

r=( int *)q;

printf("%d, %d", *r,++*q);
}