一个二维数组指针的有关问题

一个二维数组指针的问题
请问这么一个程序

#include<iostream>
using namespace std;
void main()
{
 int ia[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
 int (*p)[4]=ia;
 for(;p!=ia+3;++p)
  for(int *q=*p;q!=*p+4;++q)
  cout<<*q<<endl;
}


为什么我把 

int (*p)[4]=ia;
 for(;p!=ia+3;++p)

写成
 for(int (*p)[4]=ia;p!=ia+3;++p)

就会出错呢?  



------解决方案--------------------
没有错,扔掉VC6吧
------解决方案--------------------
没有错误啊。是可以的。
------解决方案--------------------
VC6.0表示无奈...还是换个编译器吧
------解决方案--------------------
跟上时代,2010
------解决方案--------------------
编译环境也太老了吧……
------解决方案--------------------
理论上没错