c++全局变量和局部变量一问题

c++全局变量和局部变量一问题都说声明在程序外面的是全局变量,在里面的属于局部变量局部变量只能够在范围内使用。着个范围具体指什么是一个程序段没有加}后大括号的里面吗??还... c++全局变量和局部变量一问题
都说声明在程序外面的是全局变量,在里面的属于局部变量局部变量只能够在范围内使用。着个范围具体指什么
是一个程序段没有加} 后大括号的里面吗??
还是别的什么
谢谢
不明白,你能用一小程序声明一下吗?
谢谢
展开
 我来答
silvernii
推荐于2016-07-29 · TA获得超过3638个赞
知道大有可为答主
回答量:1667
采纳率:0%
帮助的人:1621万
展开全部
一般全局变量的范围是文件范围内可用,加了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了
}
百度网友e184da53563
2020-01-07 · TA获得超过1093个赞
知道小有建树答主
回答量:1645
采纳率:100%
帮助的人:7.8万
展开全部
把cout<<a<<b<<c<<endl;改成cout<<a<<'
'<<b<<'
'<<c<<endl;
输出结果是:
5
5
10
7
12
29
具体原因,你可以翻书看一看关于全局变量,局部变量,静态变量方面的内容。这玩意要口头上说清楚真是有点麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
世镶柳009
2009-07-18 · TA获得超过3017个赞
知道答主
回答量:2928
采纳率:0%
帮助的人:2479万
展开全部
声明在程序外面的变量,那根本不是程序可以使用的变量!而且c++根本不给你这样的机会声明这样虚无缥缈的“变量”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兆瑞靳冰蝶
2019-04-07 · TA获得超过1098个赞
知道小有建树答主
回答量:1703
采纳率:95%
帮助的人:7.8万
展开全部
#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
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寻找风色
2009-07-18
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
我也是菜鸟! 不过我知道一点!
比如说:
#include <iostream>
using namespace std;

int aa = 3; //全局的变量

int main()
{

if(true)
{
int bb = 5; //局部变量
}
bb = 4; //未声明的 //变量错误 这里可以看出己经定义的
//int bb;不能在{}外边用了

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式