#include <iostream>
using
namespace std;
int x;
void funA(int
&,int );
void funB(int ,int
&);
void main()
{
int first;
int second=5;
x=6;//初始化全局变量
//int x=6;//重新定义变量x
funA(first,second);
cout<<first<<"
"<<second<<"
"<<x<<endl;
funB(first,second);
cout<<first<<"
"<<second<<"
"<<x<<endl;//只初始化全局变量x的值为什么不按照引用或者指针的方式传递,也能改变x在函数外面的值。
//cout<<first<<" "<<second<<" "<<x<<endl;//如果重新定义变量x,x值没有被改变。这是为什么?
}
/*void main()//第二种方式
{
int first;
int second=5;
x=6;//初始化全局变量
funA(first,second);
cout<<first<<" "<<second<<" "<<x<<endl;
{
int x=9;
funB(first,second);
cout<<first<<" "<<second<<" "<<x<<endl;//这里既然x值为9
}
cout<<x<<endl;//那么这里为什么x值又变成20了?
}*/
void funA(int
&a,int b)
{
int first;
first=b+12;
a=2*b;
b=first+4;
}
void funB(int u,int
&v)
{
int second;
second=x;
v=second+4;
x=u+v;//x的值被改变。
}
|