我教C给绝对的初学者,我注意到我的一些学生得到的概念是在函数中使用相同的名称和局部变量.我认为这是愚蠢的,会阻止递归.
这是一个例子:
int add2numbers (int a, int b) { /* Tested on Mac OS X with gcc */
int add2numbers = a + b;
return add2numbers;
}
Run Code Online (Sandbox Code Playgroud)
我理解它是如何工作的方式是变量在函数的局部范围内,并且函数在全局范围内.
所以,问题......
谢谢
Dee*_*epu 12
假设函数是全局的并且变量是本地的,那么你是正确的.这就是为什么你的程序没有冲突的原因.
现在考虑下面给出的程序,
#include<stdio.h>
int x=10;
void x()
{
printf("\n%d",x);
}
int main()
{
x();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您将收到错误,因为在此程序中,函数x()
和变量x
都是全局的.
帕斯卡 :)
Pascal 中的简单函数:
function max(num1, num2: integer): integer;
var
(* local variable declaration *)
result: integer;
begin
if (num1 > num2) then
result := num1
else
result := num2;
max := result;
end;
Run Code Online (Sandbox Code Playgroud)
1)我的理解正确吗?
差不多了。
2)他们到底是从哪里得到这个想法的???
对于SO来说这不是一个建设性的问题。
归档时间: |
|
查看次数: |
7648 次 |
最近记录: |