我有一些关于二维数组的基本问题,例如:
double bn[NNODES][NBASIS]
1-C 中如何声明?那么用 Fortran 语言呢?
2-第一个 [] 表示行数,第二个 [] 表示列数,对于 C 和 Fortran 都是如此?
3- 使用 bn 时,例如bn[i][j],“i”索引用于行,“j”用于列? C 和 Fortran 语言都可以吗?
4- 写入/打印功能(C 和 Fortran)如何仅适用于一个(例如 i=15)和整行?
谢谢
最佳答案
一些示例是针对方阵的,这掩盖了一个问题。 C 和 Fortran 对多维数组使用不同的内存布局。 C 是行优先,而 Fortran 是列优先。请参阅http://en.wikipedia.org/wiki/Row-major_order 。在不同语言之间工作时,在声明中处理这个问题会很方便,例如在 C:
double array [20][10];
在 Fortran 中,使用 iso_c_binding
内部模块:
real (C_DOUBLE), dimension (10,20) :: array
关于C/Fortran 二维数组(基础),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20316302/