奇怪的复合语句,该怎么解决

奇怪的复合语句

#include <iostream>
using namespace std;
int i = 0;
int fun(int n)
{
static int a = 2;
a++;
return a+n;
}
void main()
{
int k = 5;
{
int i = 2;
k += fun(i);
}
k += fun(i);
cout << k;
}


问题1:程序运行结果
    2:main函数中的大括号{}是什么意思

------解决方案--------------------
1.结果14
2.意思是括号外边那个i是全局的那个i(值是0),k第一次加了个5,括号外加了个4