C++外部变量定义与使用

不同于Java与C#, C++的变量与函数不一定存在于类中. 在C++中, 定义于函数外的变量称为外部变量, 函数内的变量称为局部变量, 也叫自动变量. 外部变量只能被定义一次, 而且在函数内对外部变量的引用必须进行声明, 可用extern语句进行显示声明, 也可以上下文隐式声明, 假如在函数内定义了与外部变量名称相同的变量, 则不会使用外部变量, 而是以当前定义变量使用.
如图
在这里插入图片描述
在main函数外定义了一个int型变量i并初始化为1, 在main函数内也定义了一个int型变量i并初始化为2, 此时在main函数中对i进行输出, 则不会使用外部变量i, 而是使用main函数内的变量i.
输出结果如图
在这里插入图片描述

那么此时如果我们需在main函数中使用外部变量i, 则需在main函数中用extern显示声明, 如图
在这里插入图片描述
注意, 在这条语句中不可再对i进行赋值, 例如

在这里插入图片描述
会被编译器提示不可对外部变量的局部声明进行初始化, 当然, 可以在其他语句中再对i进行赋值, 如图
在这里插入图片描述

外部变量的作用域范围为全局范围, 也就是说, 在其他文件中定义的外部变量在当前文件也是可以使用的, 且会因为命名而发生冲突, 但是需要在使用外部变量的时候对其用extern声明.由于外部变量的作用域特性, 导致其定义位置是无关的, 也就是说, 无论外部变量i定义在main函数后还是前, 在main函数中都可以以extern语句进行引用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值