c++ 要访问全局变量
在C和C++中,如果一定要访问全局变量该怎么实现?在局部变量和全局变量作用域重叠区域,一般默认是局部的,那要是一定要访问全局的,该怎么办?...
在C和C++中,如果一定要访问全局变量该怎么实现?
在局部变量和全局变量作用域重叠区域,一般默认是局部的,那要是一定要访问全局的,该怎么办? 展开
在局部变量和全局变量作用域重叠区域,一般默认是局部的,那要是一定要访问全局的,该怎么办? 展开
11个回答
展开全部
#include <iostream>
using namespace std;
int global= 5; //这个是全局变量
int main()
{
if(1 == 1)
{
int global= 4; // 这个是局部变量
cout << global <<endl; //输出局部变量
cout << ::global <<endl;//输出全局变量,使用作用域标识符 ::
}
return 0;
}
//当::的前面没有任何对象时,它代表后面的对象或函数是全局的。
using namespace std;
int global= 5; //这个是全局变量
int main()
{
if(1 == 1)
{
int global= 4; // 这个是局部变量
cout << global <<endl; //输出局部变量
cout << ::global <<endl;//输出全局变量,使用作用域标识符 ::
}
return 0;
}
//当::的前面没有任何对象时,它代表后面的对象或函数是全局的。
展开全部
定义全局变量就行了吗!
int a,b; /*外部变量*/ void f1() /*函数f1*/ { …… } float x,y; /*外部变量*/ int fz() /*函数fz*/ { …… } main() /*主函数*/ { …… }/*全局变量x,y作用域 全局变量a,b作用域*/ 从上例可以看出a、b、x、y 都是在函数外部定义的外部变量,都是全局变量。但x,y 定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。 a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。 全局变量是使用相同的内存块在整个类中存储一个值.
int a,b; /*外部变量*/ void f1() /*函数f1*/ { …… } float x,y; /*外部变量*/ int fz() /*函数fz*/ { …… } main() /*主函数*/ { …… }/*全局变量x,y作用域 全局变量a,b作用域*/ 从上例可以看出a、b、x、y 都是在函数外部定义的外部变量,都是全局变量。但x,y 定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。 a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。 全局变量是使用相同的内存块在整个类中存储一个值.
参考资料: http://baike.baidu.com/view/261041.htm?fr=ala0_1_1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能访问,根据变量就近原则,只有跟当前语句最近的那个变量可以访问。
楼主这种使用相同变量名称的做法是非常不符合规范,应该严厉禁止的。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
楼主这种使用相同变量名称的做法是非常不符合规范,应该严厉禁止的。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在访问变量时加上::,比如:
#include<iostream>
using namespace std;
int a = 0;
int main()
{
int a = 2;
{
int a = 1;
cout<<a<<::a<<endl;
return 0;
}
}
执行会输出
10
#include<iostream>
using namespace std;
int a = 0;
int main()
{
int a = 2;
{
int a = 1;
cout<<a<<::a<<endl;
return 0;
}
}
执行会输出
10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有作用域运算符::,
#include<iostream.h>
int a=100;
int f(int n)
{
int a;
a=n;
return ::a;
}
void main()
{
cout<<f(10);
}
最后屏幕输出就是100。
#include<iostream.h>
int a=100;
int f(int n)
{
int a;
a=n;
return ::a;
}
void main()
{
cout<<f(10);
}
最后屏幕输出就是100。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在要用到全局变量名前加::(作用域标识符)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询