static和extern关键字2-对变量的作用

一、在Java中,全局变量的定义没有严格的位置规定:
二、在C语言中,全局变量定义的位置是有限制的:
  默认情况下,一个函数不可以访问在它后面定义的全局变量
    第1种办法:将变量a定义在main函数的前面
    第2种办法:在main函数前面对变量a进行提前声明
三、重复定义同一个变量:
  重复定义同一个变量a代表着同一个变量。
四、不同源文件中的同名变量:
  假如在另一个源文件中也有全局变量int a;,那么这两个源文件的所有全局变量int a;都代表着同一个变量。
五、static关键字:
  但很多时候,我们并不想让源文件中的全局变量跟其他源文件共享,相当于私有的全局变量,那么你就得用static关键字来定义变量。
六、static和extern的总结:
  1.extern可以用来声明一个全局变量,但是不能用来定义变量
  2.默认情况下,一个全局变量是可以供多个源文件共享的,也就说,多个源文件中同名的全局变量都代表着同一个变量
  3.如果在定义全局变量的时候加上static关键字,此时static的作用在于限制该全局变量的作用域,只能在定义该全局变量的文件中才能使用,跟其他源文件中的同名变量互不干扰
七、static修饰局部变量:
  1.延长局部变量的生命周期,程序结束时候,局部变量才会被销毁。
  2.并没有改变局部变量的作用域。

 

 

posted @ 2013-09-19 00:56  tzktzk1  阅读(160)  评论(0编辑  收藏  举报