C语言基础:C语言static和extern(2) - 作用与变量

本文详细解读了C语言中static和extern关键字对于变量的作用,包括全局变量的作用域、如何通过extern实现变量的外部可见性,以及在不同文件中使用这些关键字时的输出结果和地址差异。

上一节, 我们讲解了staticextern对于函数的作用, 这次我们来讲解staticextern对于变量的作用.


首先, 我们来看一个例子:



输出的结果:




有人会疑问, 为什么我在main.c文件里面定义的全局变量会和在one.c文件里面的全局变量的输出结果和地址是完全一样的呢?



其实原因很简单, 一般来将, 只要我们没有特定写明全局变量是内部的, 那么默认就会把这个全局变量当成是外部变量, 而两个外部变量都是可以重复定义的, 编译器不会报错, 所以它们输出的结果和地址是完全一样的, 那如果我要他们不一样呢? 我们继续往下看:



输出的结果:



只要在全局变量之前加上static这个关键字, 那么这个全局变量就只能在本文件里面使用, 别的文件里面是不能调用, 所以它们的地址是不相同的.




还有一个关键字extern, 其实在前面我们讲过, 我们可以忽略这个extern不写, 如果写上的话, 就是完整的定义一个外部变量, 不写也不会影响什么:



输出的结果:



刚开始接触的时候或许会有一些迷惑, 但大家回去多敲敲代码, 多实验, 那就明白是什么意思了~~~





好了, 这次我们就讲到这里, 下次我们继续~~~

转载于:https://www.cnblogs.com/iOSCain/p/4282870.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值