6

对于我的编程语言课程,我正在尝试使用按名称传递或按值结果传递的语言编写一些代码片段,最好是默认情况下,但任何支持其中任何一种的语言都可以。但是,我还没有找到支持其中任何一种的单一语言。有谁知道使用按值结果传递或按名称传递的语言?最好是命令式语言。

4

6 回答 6

3

关于评估策略的维基百科文章表明,fortran 支持按值调用结果。algol 68 支持按名称调用。

于 2009-04-05T01:14:36.417 回答
1

我认为 C 宏是按名称传递的(当然不是C 语言本身)。恐怕我不知道任何按值结果传递的语言(老实说,我必须进行网络搜索才能找出它的含义!)。

于 2009-04-05T00:57:42.637 回答
1

如果你将一个变量传递给一个 fortran 函数并在那里修改它,你也会在调用程序中修改它:

伪代码:

int j = 1
print j
addOne(j)
print j

会输出:

1
2
于 2009-04-05T01:27:32.907 回答
1

我认为 CLIPS 专家系统语言将通过名称传递。

于 2009-04-05T02:18:48.167 回答
0

Java 和 C 都是按值传递的语言。

C 显然是一种按值传递的语言。

Java 总是被告知“基元通过值传递,对象通过引用传递”。但是由于java对象在任何时候都是一个引用,所以它实际上是一个引用值。

Java 语言规范说明了这一点:http: //java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#37472

于 2009-04-05T01:51:44.160 回答
0

Algol 支持按名称传递,您可以在此处找到一些解释

有人告诉我 Ada 支持按值/结果传递,但还没有尝试过。

于 2010-04-07T10:34:37.827 回答