变量概述:
变量根据作用域可以分为局部变量和全局变量,在函数内部定义的变量称为局部变量,在函数外部定义的变量称为全局变量。
如果将全局变量声明在头文件中,并且使用extern关键字修饰,作用是将变量导出,表示在任何通过#include包含该头文件的文件中都可以使用这个全局变量。
使用static修饰的变量称为静态变量,根据作用域又可以分为静态局部变量和静态全局变量,相同之处是两个类型变量的生存周期都是整个程序的生命周期。
一般情况下,静态全局变量的声明放在源文件中,并且不能使用extern关键字导出,静态全局变量的作用域仅限于定义静态全局变量所在的文件内部。
如果在头文件中声明静态全局变量,它在声明的同时会被初始化,如果没有显示的初始化,则会初始化为默认值。如果多个源文件都是用#include包含了定义某个静态全局变量的头文件,那个这个变量在各个源文件中都有一份单独的拷贝,且初始值相同,这些拷贝相互独立,如果修改了某个静态全局变量的值,不会影响其他拷贝。
使用const修饰的变量称为常量型变量,初始化后不能修改。
普通全局变量和常量型全局变量的区别:
全局常量型变量通常在头文件中直接声明和定义,多个源文件引用该头文件不会造成重复定义的问题。
普通全局变量一般在源文件中定义,在头文件中用extern声明,而常量型变量无法采用这种方式,因为在源文件的函数外部定义的常量型变量只限于在当前文件中使用。
i++和++i的区别:
i++:先赋值后加一
+&#