关于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???
展开
 我来答
yaayz
2014-04-13 · 知道合伙人教育行家
yaayz
知道合伙人教育行家
采纳数:1099 获赞数:2831

向TA提问 私信TA
展开全部

局部变量:在一个函数内部定义的变量就是局部变量。

作用范围:只局限在定义它的本函数体之内,即只有在该函数体内才能使用该变量,而在此函数之外是不能使用它们的。

由于在不同函数体内定义的变量只在它所在的函数体内部有效,所以,不同函数体中可以定义相同名字的变量,但它们代表不同的对象,互不干扰。它们在内存中占用不同的内存单元。

函数的形参也是该函数的局部变量,其他函数不能调用。


全局变量:一个源程序文件可以包含一个或若干个函数。在所有函数体外部定义的变量为全局变量(或外部变量),全局变量可以被本文件中其他所有的函数调用(使用)。

有效作用范围:从定义该变量的位置开始到本程序文件的结束。

***在同一个文件中,若全局变量和局部变量同名,则在局部变量的作用范围内,全局变量不起作用。

见下图:

松甜恬0Je4ba
2014-04-12 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3412万
展开全部
因为main函数中有 定义这个局部变量n,所以 main中使用的n是局部变量的n,而不是全局变量的n。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式