#include
using namespace std;
using array_alias = int[4]; //typedef int array_def[4];
typedef int (*array_def)[4]; //using array_alias = int (*)[4]
int main()
{
constexpr size_t rowCnt = 3, colCnt = 4;
int ia[rowCnt][colCnt] = {};
//1.原始方法
for(int i = 0; i !=rowCnt; i++)
for(int j = 0; j != colCnt; j++)
cout <a
for(int (*p)[4] = ia; p != ia +3; p++)
for(int* q = *p; q != *p + 4; q++)
cout <<*q;
cout << endl;
for(array_def p = ia; p != ia +3; p++)
for(int* q = *p; q != *p + 4; q++)
cout <<*q;
cout << endl;
for(array_alias* p = ia; p != ia +3; p++)
for(int* q = *p; q != *p + 4; q++)
cout <<*q;
cout << endl;
for(auto p = ia; p != ia +3; p++)
for(auto q = *p; q != *p + 4; q++)
cout <<*q;
cout << endl;
//6.
for(int (*p)[4] = begin(ia); p != end(ia); p++)
for(int* q = begin(*p); q != end(*p); q++)
cout <<*q;
cout << endl;
for(auto p = begin(ia); p != end(ia); p++)
for(auto q = begin(*p); q != end(*p); q++)
cout <<*q;
cout << endl;
//
for(decltype(ia[0]) row : ia)
for(auto col : row)
cout << col;
cout << endl;
for(int (&row)[4] : ia)
for(auto col : row)
cout << col;
cout << endl;
for(array_alias& row : ia)
for(auto col : row)
cout << col;
cout << endl;
for(auto& row : ia)
for(auto col : row)
cout << col;
cout << endl;
return 0;
}