一道不知所云的C++题目

完成程序并给出结果:
[code="C++"]
class test{
int x;
public:
test(int a){x=a;}
int GetX(){return x;}
}
void main(){


test *p,a[2][3] = {{1,2,3},{4,5,6}};
for(____________;i<=6;i++,p++){
if((p-a[0])%3==0)cout< coutGetX()<<" ";
}
}
[/code]
我不知道那两个空怎么填,也不知道这题想干什么,那位高手可以指点一二,在下不胜感激

估计这首题目是想打印出
[code]
1 2 3
4 5 6
[/code]
这样的输出吧
第一空里,创建一个具有6个元素的数组(但0位留空),数组内容为test实例的指针
第二空里,将i初始化为1,并将test *p设成第一步创建的数组的下标为1的那个test实例的指针

但就是这一行看不懂什么意思
code="c++"
[/code]
因为它没用到i
估计这一行应该是
code="c++"?(i-3):i])
[/code]
确实也不知所云