【发布时间】:2020-05-11 12:33:20
【问题描述】:
谁能向我解释为什么结果是 2,x 使用的是哪个以及为什么。
auto x = 0;
int f(int i){
auto x = 1;
{
static auto x = 0;
x += i;
}
return x;
}
int main() {
cout << f(1) + f(2) <<endl;// result 2
return 0;
}
【问题讨论】:
-
您需要确定这是 C 还是 C++,因为它们在
auto的情况下非常不同。cout在 C 中不起作用,所以我将删除 C 标记。 -
我下次注意谢谢
标签: c++ scope declaration