新手问问题!!
#include <iostream>using namespace std;
int main()
{const size_t rowsize=3;
const size_t colsize=4;
int ia[rowsize][colsize]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
for (int (*p)[4]=ia;p!=ia+3;++p)
for(int *q=*p;q!=*p+4;++q)
cout<<*q<<endl;
return 0;
}
这个程序在运行时出现很多错误!但是将它改为
#include <iostream>
using namespace std;
int main()
{const size_t rowsize=3;
const size_t colsize=4;
int ia[rowsize][colsize]={{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;
return 0;
程序就没问题了 。我只是将int (*p)[4]=ia;从for语句中的里面拿到了外面.但是我觉得这两个程序一样!我想不出原因,请大家解释一下!!谢谢!!