c++全局变量和局部变量

 我来答
贲云蒉易云
2019-05-26 · TA获得超过3695个赞
知道大有可为答主
回答量:3063
采纳率:24%
帮助的人:155万
展开全部
局部变量:在一个函数内部定义的变量就是局部变量。
作用范围:只局限在定义它的本函数体之内,即只有在该函数体内才能使用该变量,而在此函数之外是不能使用它们的。
由于在不同函数体内定义的变量只在它所在的函数体内部有效,所以,不同函数体中可以定义相同名字的变量,但它们代表不同的对象,互不干扰。它们在内存中占用不同的内存单元。
函数的形参也是该函数的局部变量,其他函数不能调用。
全局变量:一个源程序文件可以包含一个或若干个函数。在所有函数体外部定义的变量为全局变量(或外部变量),全局变量可以被本文件中其他所有的函数调用(使用)。
有效作用范围:从定义该变量的位置开始到本程序文件的结束。
***在同一个文件中,若全局变量和局部变量同名,则在局部变量的作用范围内,全局变量不起作用。
见下图:
兴斐雷傲菡
2019-06-03 · TA获得超过3528个赞
知道大有可为答主
回答量:3151
采纳率:33%
帮助的人:225万
展开全部
#include
<iostream.h>
int
a,b;
void
fun(int
a)
{
static
int
c;
b+=a;
c+=a+b;
cout<<a<<b<<c<<endl;
}
void
main()
{
int
a=5,b=7;
fun(a);
//调用这个函数知输出
5
5
10
这里的参数a使用了局部变量的副本,函数里的b使用了全道局变量
就是内fun(5)==>
b+=5:b=0+5
c+=a+b:c=0+5+5
就是5
5
10
fun(b);
//这个输出
7
12
29
函数里的a使用了全局变量,参数b使用了局部变量的副本,而c是个静态变量,就接着上面的fun(a)的结果10继续容+a+b
就是fun(7)
==>b+=7:
b=5+7
c+=a+b
c=10+7+12
就是
7
12
29
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式