#include <iostream>
using namespace std;
int main() {
int a[][2] = { {0,0}, {1,1}, {2,2}};
int (*p)[3]=(int(*)[3])a; // implicitly converted from array name to pointer to the first element (int(*)[2])
int (*p2)[3]=(int(*)[3])a[0]; // a[3][2], access a[0], an array, implicitly converted to int*
int (*p3)[3]=(int(*)[3])&a[0]; // Address of int[2] array, int(*)[2] type
cout << p << endl;
cout << p2 << endl;
cout << p3 << endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgYVtdWzJdID0geyB7MCwwfSwgezEsMX0sIHsyLDJ9fTsKCWludCAoKnApWzNdPShpbnQoKilbM10pYTsgLy8gaW1wbGljaXRseSBjb252ZXJ0ZWQgZnJvbSBhcnJheSBuYW1lIHRvIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGVsZW1lbnQgKGludCgqKVsyXSkKCWludCAoKnAyKVszXT0oaW50KCopWzNdKWFbMF07IC8vIGFbM11bMl0sIGFjY2VzcyBhWzBdLCBhbiBhcnJheSwgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gaW50KgogICAgaW50ICgqcDMpWzNdPShpbnQoKilbM10pJmFbMF07IC8vIEFkZHJlc3Mgb2YgaW50WzJdIGFycmF5LCBpbnQoKilbMl0gdHlwZQogICAgCiAgICBjb3V0IDw8IHAgPDwgZW5kbDsKICAgIGNvdXQgPDwgcDIgPDwgZW5kbDsKICAgIGNvdXQgPDwgcDMgPDwgZW5kbDsKCQoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=