In GNU C, pointers to arrays with qualifiers work similar to pointers to other qualified types. For example, a value of type
int (*) can be used to initialize a variable of type
const int (*). These types are incompatible in ISO C because the
const qualifier is formally attached to the element type of the array and not the array itself.
extern void transpose (int N, int M, double out[M][N], const double in[N][M]); double x; double y; transpose(3, 2, y, x);