主程序中的二維數組x[4][4]存放原始方陣,調用函數rotate時,將第壹個元素x[0][0]的地址和階數4,傳遞到了函數rotate的形參x和rank,則函數中x[0]、x[1]、-> x[15] 則存放的是1->16,rank=4。
函數的第壹句要求系統分配連續的16個整數的空間,並將首地址賦給了指針變量y,在接下來的二層循環中完成目標矩陣在y數組中的填寫,是y[0]、y[1]、-> y[15] 中存放{13,9,5,1,14,10,6,2,14,11,7,3,16,12,8,4}。
對於 x[i] , 如把它排成4行4列,必定在第 i/rank行,i%rank列,填到y數組中,位置應是第i%rank行,rank-1-i/rank列,也就是y數組的第(i%rank)*rank+rank-1-i/rank個。