c++全局变量和局部变量
2个回答
展开全部
局部变量:在一个函数内部定义的变量就是局部变量。
作用范围:只局限在定义它的本函数体之内,即只有在该函数体内才能使用该变量,而在此函数之外是不能使用它们的。
由于在不同函数体内定义的变量只在它所在的函数体内部有效,所以,不同函数体中可以定义相同名字的变量,但它们代表不同的对象,互不干扰。它们在内存中占用不同的内存单元。
函数的形参也是该函数的局部变量,其他函数不能调用。
全局变量:一个源程序文件可以包含一个或若干个函数。在所有函数体外部定义的变量为全局变量(或外部变量),全局变量可以被本文件中其他所有的函数调用(使用)。
有效作用范围:从定义该变量的位置开始到本程序文件的结束。
***在同一个文件中,若全局变量和局部变量同名,则在局部变量的作用范围内,全局变量不起作用。
见下图:
作用范围:只局限在定义它的本函数体之内,即只有在该函数体内才能使用该变量,而在此函数之外是不能使用它们的。
由于在不同函数体内定义的变量只在它所在的函数体内部有效,所以,不同函数体中可以定义相同名字的变量,但它们代表不同的对象,互不干扰。它们在内存中占用不同的内存单元。
函数的形参也是该函数的局部变量,其他函数不能调用。
全局变量:一个源程序文件可以包含一个或若干个函数。在所有函数体外部定义的变量为全局变量(或外部变量),全局变量可以被本文件中其他所有的函数调用(使用)。
有效作用范围:从定义该变量的位置开始到本程序文件的结束。
***在同一个文件中,若全局变量和局部变量同名,则在局部变量的作用范围内,全局变量不起作用。
见下图:
展开全部
#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
}
<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
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询