我是C的初学者,已经开始在c中编写代码.我对变量的范围有疑问.当任何变量写入块内时,其范围在该块内.但是,当使用返回字时,如何在块外部访问变量?
例:
int add(int a, int b)
{
int c;//scope of c is within this block
c=a+b;
return c;
} //it ends here
void main()
{
int answer;
answer=add(2,3);//how we gets value of "c " here
printf("%d",answer);
}
Run Code Online (Sandbox Code Playgroud)
它不在街区外进入.当你这样做时return c;,c会返回一个值的副本,而不是c它自己.
int foo()
{
int c = 3;
return c;
}
Run Code Online (Sandbox Code Playgroud)
这只返回3,值 c保持不变.
有些语言允许编译器通过扩展c范围来"欺骗" ,但这是一种优化,不会改变逻辑.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |