透過強轉型可以辦到這種要求:
int main(int argc,char *argv[])
{
int row = 4;
int arr[5][5] = {{11,12,13,14,15},
{21,22,23,24,25},
{31,32,33,34,35},
{41,42,43,44,45},
{51,52,53,54,55}};
cout << arr[2][1] << endl;
//存取一個(2,1)的元素
//等效於*(arr + 2*5 + 1) => 32
cout << ((int*)arr)[11] << endl;
//轉換成一個一維的整數陣列
//等效於*(arr + 11) => 32
cout << ((int (*)[row])arr)[2][3] << endl;
//轉換成一個4列的整數陣列
//等效於*(arr + 2*4 + 3) => 32
return 0;
}
其他維度的轉型方法大同小異。
沒有留言:
張貼留言