c++全局变量和局部变量一问题
c++全局变量和局部变量一问题都说声明在程序外面的是全局变量,在里面的属于局部变量局部变量只能够在范围内使用。着个范围具体指什么是一个程序段没有加}后大括号的里面吗??还...
c++全局变量和局部变量一问题
都说声明在程序外面的是全局变量,在里面的属于局部变量局部变量只能够在范围内使用。着个范围具体指什么
是一个程序段没有加} 后大括号的里面吗??
还是别的什么
谢谢
不明白,你能用一小程序声明一下吗?
谢谢 展开
都说声明在程序外面的是全局变量,在里面的属于局部变量局部变量只能够在范围内使用。着个范围具体指什么
是一个程序段没有加} 后大括号的里面吗??
还是别的什么
谢谢
不明白,你能用一小程序声明一下吗?
谢谢 展开
8个回答
展开全部
一般全局变量的范围是文件范围内可用,加了static就本文件可以用,不加static的话,其他文件也可以用改变量。全局变量是声明在所有函数和类,结构之外的变量
局部变量的作用域是在该变量的{}中,但是像
for(int i=0;i<10;++i)
printf("%d",i);//这里虽然只有一句,也没有用{}包起来,但i的作用域还是只有在for语句中
在某个文件中,如果局部变量和全局变量同名的话,那么在该局部变量作用域内全局变量会被屏蔽掉
譬如
int a=0;
int main()
{
for(int i=0,int a=0;i<10;++i)
a++;//局部变量a,最后的值是10
cout<<a<<endl; //这个a是全局变量a,值还是0
cout<<i<<endl; //编译时会报错,因为i的作用域在for语句中,这里已经没有i了
}
局部变量的作用域是在该变量的{}中,但是像
for(int i=0;i<10;++i)
printf("%d",i);//这里虽然只有一句,也没有用{}包起来,但i的作用域还是只有在for语句中
在某个文件中,如果局部变量和全局变量同名的话,那么在该局部变量作用域内全局变量会被屏蔽掉
譬如
int a=0;
int main()
{
for(int i=0,int a=0;i<10;++i)
a++;//局部变量a,最后的值是10
cout<<a<<endl; //这个a是全局变量a,值还是0
cout<<i<<endl; //编译时会报错,因为i的作用域在for语句中,这里已经没有i了
}
展开全部
把cout<<a<<b<<c<<endl;改成cout<<a<<'
'<<b<<'
'<<c<<endl;
输出结果是:
5
5
10
7
12
29
具体原因,你可以翻书看一看关于全局变量,局部变量,静态变量方面的内容。这玩意要口头上说清楚真是有点麻烦
'<<b<<'
'<<c<<endl;
输出结果是:
5
5
10
7
12
29
具体原因,你可以翻书看一看关于全局变量,局部变量,静态变量方面的内容。这玩意要口头上说清楚真是有点麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
声明在程序外面的变量,那根本不是程序可以使用的变量!而且c++根本不给你这样的机会声明这样虚无缥缈的“变量”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也是菜鸟! 不过我知道一点!
比如说:
#include <iostream>
using namespace std;
int aa = 3; //全局的变量
int main()
{
if(true)
{
int bb = 5; //局部变量
}
bb = 4; //未声明的 //变量错误 这里可以看出己经定义的
//int bb;不能在{}外边用了
}
比如说:
#include <iostream>
using namespace std;
int aa = 3; //全局的变量
int main()
{
if(true)
{
int bb = 5; //局部变量
}
bb = 4; //未声明的 //变量错误 这里可以看出己经定义的
//int bb;不能在{}外边用了
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询