码迷,mamicode.com
首页 > 编程语言 > 详细

c/c++全局变量与局部变量

时间:2014-05-14 15:31:34      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   class   code   c   

          在c/c++中变量是最基本的成员,也是我们最常用的东西,变量大体上分为全局变量与局部变量两种,全局变量是在整个程序中都可以使用,而局部变量只能在最接近定义的一组大括号内使用,总的来说,在c/c++里面,变量只有定义了并在其生命周期内才能使用。说得有点抽象,给大家看个例子吧。


a、全局变量

#include<iostream>
using namespace std;

int a = 0;

void demo()
{
	a++;
}

int main()
{
	for(int i = 0; i < 5; i++)
	{
		demo();
		cout << "a = " << a << endl;
	}

	return 0;
}


输出结果如下

bubuko.com,布布扣

   分析:我们可以看到,在程序一开始定义了a,然后我们在小demo()函数和main()主函数里面都使用了这个a,这个就是全局变量,同时也验证“变量只有定义了才能使用”,假如我们写成如下程序:

#include<iostream>
using namespace std;

void demo()
{
	a++;
}

int a = 0;

int main()
{
	for(int i = 0; i < 5; i++)
	{
		demo();
		cout << "a = " << a << endl;
	}

	return 0;
}

编译出错,提示为:

C:\Users\Administrator\Desktop\Demo\demo.cpp(6) : error C2065: ‘a‘ : undeclared identifier

意思就是说程序不认识第六行里面的a,也就是demo()函数中“a++;”里的a,因为我们把a定义在了demo()函

数下面,我们还没定义a就在demo()函数里面使用a,编译器当然不认识喽。


b、局部变量

#include<iostream>
using namespace std;

void demo()
{
	int a = 0;
	cout << "a = " << a << endl;
}

int main()
{
	demo();

	for(int i = 0; i < 1; i++)
	{
		int b = 1;
		cout << "b = " << b << endl;
	}

	return 0;
}


运行结果如下

bubuko.com,布布扣


对比一下如下程序及程序编译结果

#include<iostream>
using namespace std;

void demo()
{
	int a = 0;
}

int main()
{
	demo();

	for(int i = 0; i < 1; i++)
	{
		int b = 1;
	}

	cout << a << endl << b << endl;

	return 0;
}

程序编译结果为:

C:\Users\Administrator\Desktop\Demo\demo.cpp(18) : error C2065: ‘a‘ : undeclared identifier
C:\Users\Administrator\Desktop\Demo\demo.cpp(18) : error C2065: ‘b‘ : undeclared identifier

意思就是说编译器不认识“cout << a << endl << b << endl;”这句话里的a和b变量


    分析:图图之前说过,局部变量只能在最接近它定义的一组大括号里面使用,我们来看a,最接近定义变量a的一组大括号就是demo()函数的大括号,所以我们只能在demo()函数里面使用a,同样的,我们只能在for循环语句里面使用b。同时在看看我们一言以蔽我们变量作用域的一句话“变量只有定义了才能使用”,我们在demo()函数中定义了a,那么出了这个demo()大括号,它的生命周期就结束了,就会被系统销毁,a也就不存在了,既然不存在了,我们使用cout << a << endl << b << endl;编译器当然不认识a和b了。


       请大家一定要记住“变量只有定义了,并在其生命周期内才能使用” 

c/c++全局变量与局部变量,布布扣,bubuko.com

c/c++全局变量与局部变量

标签:des   style   blog   class   code   c   

原文地址:http://blog.csdn.net/u011106520/article/details/25717129

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!