有没有一种简单的方法,在普通的C(而不是C ++或C#)中将2-D数组中的列作为单独的1-D数组引用?这很容易为行执行。假设我有2个函数:
double doSomethingWithARow( double theRow[3] );
double doSomethingWithACol( double theCol[100] );
然后,我可以像这样使用第一个:
double matrix[100][3];
double result;
// pass a single row to a function as an array
// this essentially passes the 3-element array at row 48 to the function
for( int i=0; i < 100; i++ )
{
result = doSomethingWithARow( matrix[i] );
}
我希望有一种简便的方法来访问列。
for( int j=0; j < 3; j++ )
{
result = doSomethingWithACol( ??????????? );
}
到目前为止,我唯一想到的方法是将矩阵转换为交换行和列。但这段代码应该在内存和速度方面尽可能高效。在C语言中引用指针的方式非常复杂,似乎应该有一种方法可以做到这一点。