int main()
{
int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int *ptr1 = (int *)(&aa + 1);
//取地址aa为1前面的地址,&aa+1为10后面的地址,然后强转化类型为int*,赋值给*ptr,减一后指向10的位置,*(ptr1 - 1)==10
int *ptr2 = (int *)(*(aa + 1));
//aa为第一行的地址,aa+1为第二行的地址,解引用2后拿到第二行,*(aa + 1)相当于第二行的数组名aa[1],又相当于6的地址,6本来就是int*类型,所以 *(ptr2 - 1)==5
printf( "%d,%d", *(ptr1 - 1), *(ptr2 - 1));
return 0;
}