gpt4 book ai didi

c# - 使用 "return"时如何在 block 外访问任何变量?

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:45 25 4
gpt4 key购买 nike

我是 C 的初学者,已经开始用 C 编写代码。我对变量的范围有疑问。当任何变量写入 block 内时,它的作用域就在该 block 内。但是,当使用 return word 时,如何在 block 外访问变量?

例子:

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);
}

最佳答案

它不能在 block 外访问。当您执行 return c; 时,将返回 c 值的拷贝,而不是 c 本身。

int foo()
{
int c = 3;
return c;
}

这只返回 3, c 成立。

有些语言允许编译器通过扩展c 的范围来“作弊”,但这是一个optimization并且不会改变逻辑。

关于c# - 使用 "return"时如何在 block 外访问任何变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com