有关全局变量与局部变量

在C++中,经常会遇到全局变量与局部变量,在定义一个变量的时候尽量把它定义为一个局部变量,这是因为局部变量的控制范围通常有限,只在定义它的语句块内起作用,当语句块执行结束后,它所占用的内存就会被释放,这样既能避免跟其它地方的变量冲突,减少出现bug的可能性,同时也节省资源 ,而全局变量则一直存在于整个程序中,直到程序结束它所占的内存才会被释放,这样一来系统要花额外的资源和时间来维护它。
另外,全局变量在定义的时候,如果没有初始化,会被自动初始化为0。局部变量在定义的时候,除非程序员指定其初值,否则不会被初始化的。我们可以通过下面的代码来验证:
#include<iostream>
using namespace std;
int i;//定义一个全局变量i,没有指定初值
int main()
{
 int j;//定义一个局部变量j,没有指定初值
 cout<<i<<endl;//打印i
 //cout<<j<<endl;//如果想让程序执行,这句一定要注释掉,因为j是一个局部变量,并且没有
                             //指定初值,直接打印j这是不允许的!
        cout<<&j<<endl;//打印j的地址,这是允许的
 return 0;
}
通过运行上面的代码,我们可以清楚的看到i被系统自动初始化为0,而j则没有。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值