Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 什么(有什么)语言只允许通过引用传递?_Programming Languages_Parameter Passing_Pass By Reference - Fatal编程技术网

Programming languages 什么(有什么)语言只允许通过引用传递?

Programming languages 什么(有什么)语言只允许通过引用传递?,programming-languages,parameter-passing,pass-by-reference,Programming Languages,Parameter Passing,Pass By Reference,我在想。有没有只使用按引用传递作为其eval策略的语言?Brainfuck怎么样?我不知道什么是“eval策略”,但Perl子例程调用只是按引用传递 sub change { $_[0] = 10; } $x = 5; change($x); print $x; # prints "10" change(0); # raises "Modification of a read-only value attempted" error VB(pre.net)、VBA和VBS默认为By

我在想。有没有只使用按引用传递作为其eval策略的语言?

Brainfuck怎么样?

我不知道什么是“eval策略”,但Perl子例程调用只是按引用传递

sub change {
    $_[0] = 10;
}

$x = 5;
change($x);
print $x;  # prints "10"
change(0);  # raises "Modification of a read-only value attempted" error

VB(pre.net)、VBA和VBS默认为ByRef,尽管在调用/定义子函数或函数时可以重写它。

FORTRAN;在诸如通过引用传递之类的概念之前,我们可能应该说它使用通过地址传递;FORTRAN函数,如:

INTEGER FUNCTION MULTIPLY_TWO_INTS(A, B)
INTEGER A, B
MULTIPLY_BY_TWO_INTS = A * B
RETURN
将有一个C型原型:

extern int MULTIPLY_TWO_INTS(int *A, int *B);
您可以通过以下方式进行调用:

int result, a = 1, b = 100;

result = MULTIPLY_TWO_INTS(&a, &b);
另一个例子是不知道函数参数本身但使用堆栈的语言。一个例子是Forth及其派生函数,其中一个函数可以以它想要的任何方式更改变量空间(堆栈),修改现有元素以及添加/删除元素。Forth中的“原型注释”通常类似于

(argument list -- return value list)

这意味着函数接受/处理一定数量(不一定是常量)的参数,并返回一定数量(也不一定是常量)的元素。也就是说,您可以使用一个函数,该函数以一个数字
N
作为参数,并返回
N
元素-如果您愿意,可以预先分配一个数组。

对不起,只能使用图灵完整语言。:)很好,很可能是,但你必须提供一些证据。我不懂所有的语言。它没有函数,因此它的函数只是通过引用传递的-P同样,它是图灵完备的。这并不能证明通过引用传递。在您提供的示例中,
MULTIPLY_TWO_int
必须修改
A
B
,然后我们必须看到调用方的
A
B
版本在调用后发生了变化。只需在这里放置一个sutpid查询……这种按值传递/引用的想法取决于编程语言的内部组织或它对程序员的显示方式。我这样问是因为大多数人说java模拟引用调用和调用。但从编程的角度来看,它似乎是通过引用调用的。同样的方法,我们可以确保perl在后面没有使用call by val吗??