关于c++中形参和全局变量同名的问题简单探究
今天突然想到如果形参和全局变量同名,会如何处理,有如下结果
#include <bits/stdc++.h>
#define yes puts("yes");
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
#define ll long long
#define ull unsigned long long
#define debug(x) cout<<"> "<< x<<endl;
#define endl '\n'
#define lowbit(x) x&-x
//#define int long long
using namespace std;
typedef pair<int,int> PII;
const int N =10 + 1e5, mod = 1e9 + 7;
int n = 10;
void f(int n){
cout << n << endl;
n--;
cout <<"> "<<n<<endl;
cout <<"? "<<::n<<endl;
}
void solve()
{
f(n);
cout << n<<endl;
}
signed main()
{
ios::sync_with_stdio();cin.tie();cout.tie();
solve();
return 0;
}
结果为:
小结:
c++中全局变量可以和形参同名,在函数内部的变量和全局变量无关,但如果同名,还想要访问同名的全局变量需要用"::"进行访问。