局部变量和全局变量的差别

全局变量、静态全局变量、静态局部变量和局部变量



全局变量、静态变量如果没有手动初始化,则有编译器初始化为0。

局部变量是编译器永远不会初始化的变量,如果没有手动初始化,局部变量的值为随机值。



在函数内使用全局变量,一般应做全局变量说明,只有在函数内经过说明的全局变量才能使用。

但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。

全局变量说明:extern 类型说明符,变量名,变量名……;



在C++中,对变量的存储类型有4种:

    auto、register、extern、static

例如:

static int a;                        a为静态类型变量

auto char c;                       c为自动字符变量

static int a[2]={1,2};             a为静态整型数组

extern  int x;                          x为外部整型变量


作用域有6种:

全局作用域 、 局部作用域  、语句作用域、 类作用域  、命名空间作用域  、文件作用域

被static 关键字修饰过的变量具有文件作用域。两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。


分配内存空间

全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域

局部变量存放在内存的栈区。


    




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值