C/Fortran 二维数组(基础)

标签 c arrays fortran

我有一些关于二维数组的基本问题,例如:

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/

相关文章:

arrays - R 中的 SAS 数组等效项

java - 获取数字数组所有可能排列的 ArrayList

segmentation-fault - 为什么 MPI isend irecv 不起作用?

fortran - forrtl : severe (157): Program Exception - access violation

python - 如何将 (7, 3, 3, 3) 数组传递给 Fortran 子例程?

c - 指向c中匿名结构数组的指针

c - 如何判断我的 Windows 应用程序何时终止?

php - 删除数组中除最后 5 个 PHP 之外的所有项目

c++ - 如何限制在 VS 设计器中创建的编辑框中的数字

c - 在 Struct 中索引指向 char 指针的指针会覆盖所有值吗?