关于全局变量的一些问题。

img


A选项和C选项哪个错了呀?有谁知道可以解释一下吗?cdsgvgtehbtynqwscxfbt

  • 全局变量 可以是 外部变量
    解释: 因为全局变量只能被定义一次,如果其他模块要使用该全局变量,需要通过外部变量的声明【使用 extern 关键字】,所以 全局变量 可以是 外部变量。但不是所有全局变量都是 外部变量

外部变量一定是个全局变量,而全局变量不一定是个外部变量。
在函数之外定义的变量称为外部变量,是全局变量。全局变量是在所有函数体的外部定义的,程序的所有部分(甚至其他文件中的代码)都可以使用.全局变量不受作用域的影响,总是可用的(也就是说,全局变量的生命期一直到程序的结束)

  • C是错的,全局变量是定义在所有函数之前的外部变量,它的作用域是整个程序。
  • A是对的,全局变量如果在定义时没有赋值会被自动初始化,例如全局int变量(包括有static前缀的)未初始化, 默认值是0