我有这个函数'bintoint',我用它来将二进制数转换为十进制:
function bintoint(var n: string):integer;
var i: integer;
Begin
result:= 0;
Trim(n);
for i:=length(n) downto 1 do
result := result + (strtoint(n[i])*(potencia(2,i-1))); {Here's the source for the error, at the last 'i'}
End;
Run Code Online (Sandbox Code Playgroud)
它在i处显示错误,它是'for'循环的变量,在'var'部分声明.'potencia'是我放在上面的另一个函数,它取代了'power(base,exp)',所以我可以用整数来计算幂.
function potencia(var base,exp: integer):integer;
Run Code Online (Sandbox Code Playgroud)
我在网站上看到过各种类似的问题,但是它们的错误出现在过程/函数参数的变量中,而不是变量部分.
如果你能告诉我这个问题,我们将不胜感激.
提前致谢.
关于通过引用传递vars的快速问题:更合适的是:
1)使用经典指针语法:
void change(int *a) { a = 0; }
...
int number = 1;
change(&number);
Run Code Online (Sandbox Code Playgroud)
2)或者将它作为单个元素数组并默认通过引用传递:
void change(int a[]) { a[0] = 0; }
...
int number[1] = {1};
change(number);
Run Code Online (Sandbox Code Playgroud)
我想到的东西.想知道如果使用一个元素的数组而不是一个简单的变量,资源使用的差异如何.