关于C++全局变量和局部变量的问题!!
#include"iostream.h"intm=10;voidf1(intn){n=2*n;m=m/3;}intn;voidf2(){n=5;m++;n++;}void...
#include"iostream.h"
int m=10;
void f1(int n)
{
n=2*n;m=m/3;
}
int n;
void f2()
{
n=5;m++;n++;
}
void main()
{
int n=2;
f1(n);
f2();
cout<<m<<n;
}
答案是输出m=4,n=2. 请问为何输出的n不是2*2=4??? 展开
int m=10;
void f1(int n)
{
n=2*n;m=m/3;
}
int n;
void f2()
{
n=5;m++;n++;
}
void main()
{
int n=2;
f1(n);
f2();
cout<<m<<n;
}
答案是输出m=4,n=2. 请问为何输出的n不是2*2=4??? 展开
展开全部
局部变量:在一个函数内部定义的变量就是局部变量。
作用范围:只局限在定义它的本函数体之内,即只有在该函数体内才能使用该变量,而在此函数之外是不能使用它们的。
由于在不同函数体内定义的变量只在它所在的函数体内部有效,所以,不同函数体中可以定义相同名字的变量,但它们代表不同的对象,互不干扰。它们在内存中占用不同的内存单元。
函数的形参也是该函数的局部变量,其他函数不能调用。
全局变量:一个源程序文件可以包含一个或若干个函数。在所有函数体外部定义的变量为全局变量(或外部变量),全局变量可以被本文件中其他所有的函数调用(使用)。
有效作用范围:从定义该变量的位置开始到本程序文件的结束。
***在同一个文件中,若全局变量和局部变量同名,则在局部变量的作用范围内,全局变量不起作用。
见下图:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询