让 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/