c++ - Fortran 中的指针与 C/C++ 中的指针究竟有何不同?

标签 c++ c pointers fortran

让 C/C++ 程序员和 Fortran 程序员比较和对比这两种语言中的指针可能会很有用。

在试图向 C/C++ 程序员解释 Fortran 指针有何不同时,我通常会说指向函数或子例程的指针不存在。然后我尝试提出 Fortran 指针更“高级”的论点,但细节很模糊。

具体有什么区别?

最佳答案

正如 Mark 所说,Fortran 中确实存在指向函数和子例程的指针。不同之处在于:

  • 在 C 中,指针只是一个地址,而在 Fortran 中,指针可以包含其他信息,例如数组边界和步幅,这就是为什么在声明指针伪参数时需要显式接口(interface)的原因
  • 在 C 中,您必须显式取消引用指针,而在 Fortran 中取消引用是自动的(除非在需要指针的上下文中)
  • 在 C 中,没有关于别名的假设,而在 Fortran 中,您只允许指向具有 TARGET 属性的事物

关于c++ - Fortran 中的指针与 C/C++ 中的指针究竟有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858324/

相关文章:

c++ - 区分函数抛出的异常和参数的构造函数或析构函数抛出的异常

C中常量指针的困惑

c - 如何从输入中正确扫描一行并写入输出文件

c - 访问二维晶格 C 中的元素

c++ - 将指针分配给两个指针的按位或

c - 返回字符指针并与字符串进行比较

c++ - Opengl 选择性 glClipPlane

c++ - 在定义之前声明未定义的 std::function 的目的是什么?

c++ - 如何在不缩放其内容的情况下调整 opengl 视口(viewport)大小

c++ - void 指针和 NULL 指针有什么区别?