C++ 二维数组通过for循环赋值,用指针体现,出现无限循环。。。。

问题描述:

代码如下:
for(int (*p)[4]=ia;p <p+3;++p)
for(int *q=*p;q <q+4;++q)
cout<<*q<<" ";
cout<<endl;

本人是一名菜鸟

p <p+3
这个条件永远成立,因为p被更改了,可以这么写:

 int *maxp = p + 3;
for(int (*p)[4]=ia;p <maxp;++p)
...

这个代码奇怪到都不能回答了 = =
建议要不先附上完整的代码?

p <p+3;永远为真
如果是新手,建议使用两个for,i,j访问