別の型の配列への参照

配列へのポインタと組み合わせてこんなことが可能。

#include <iostream>
int main(){
  int a[2][3] = {{1,2,3}, {4,5,6}};
  int (&b)[sizeof(a) / sizeof(int)] = *static_cast<int(*)[6]>(static_cast<void*>(a));

  for (int i = 0; i < sizeof(b); ++i)
    std::cout << b[i] << std::endl;
}

もちろん代入も可能。これを使うと、行列を表す2次元配列からその部分行列への参照が可能…?