为什么是14,而不是13
#include <iostream>
using namespace std;
int i = 0;
int fun(int n)
{
static int a = 2;
a++;
return a+n;
}
int main()
{
{
int k = 5;
{
int i = 2;
k += fun(i);
}
k += fun(i);
cout << k;
}
为什么是14,而不是13
#include <iostream>
using namespace std;
int i = 0;
int fun(int n)
{
static int a = 2;
a++;
return a+n;
}
int main()
{
{
int k = 5;
{
int i = 2;
k += fun(i);
}
k += fun(i);
cout << k;
}
第一调用完fun a = 3,第二调用完fun a = 4 所以最终结果是 5 + 3 + 2 + 4 + 0 = 14
第一fun 的i =2 第二次 fun的i = 0,因为一次调用fun的外面有个大括号,所以里面的int i = 2并不会影响到外面的i。