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