①. 全局变量:
a.C和Go语言中,定义在函数外面的就是全局变量.
②. 局部变量:
a.C和Go语言中,写在{}中、函数中、函数的形参,就是局部变量.
b. 只能在{}里面有效.
2. 作用域:
①. 全局变量:
a.C语言中,全局变量的作用域是从定义的那一行开始,直到文件末尾为止.
b. Go语言中的只要定义了全局变量,在定义前、后都可以使用.
c. 全局变量在任何地方都可以进行使用.
d. main包里定义的全局变量别的包是无法引用的.
②. 局部变量:
a.C和Go语言中,局部变量的作用域是,从定义的那一行开始,直到}结束或遇到return为止.
b. 执行到定义的那句话,开始分配内存空间,离开作用域自动进行释放.
c. 不同的作用域,允许定义同名的变量.
d. 使用变量的原则为就近原则,如果局部变量没有,就去全局变量中找.
①. 全局变量:
a. 在C语言中相同的作用域内,可以出现同名的全局变量.
b. 在Go语言中相同的作用域内,不能出现同名的全局变量.
②. 局部变量:
a. 在C语言中相同的作用域内,不能出现同名的局部变量.
b. Go语言中相同干的作用域内,不能出现同名的局部变量.
5. 特殊点:
①. 在C语言中局部变量没有初始化存储的是垃圾数据,在Go语言中局部变量没有初始化,会默认初始化为0.
②.C和Go语言中,全局变量没有初始化存储的是0.
a. Go语言有零值的概念.
③. 在Go语言中,定义了没有使用:
a. 如果定义了一个局部变量,但是没有使用,编译会报错.
b. 如果定义了一个全局变量,但是没有使用,编译不会报错.