变量的定义,声明和初始化之问题
采石工 2010-12-17 03:33:11 下面是我总结的一些结论,希望对大家有用。有错误和不足之处,欢迎大家指正和补充!
extern int i;//在全局和局域都是声明
extern int i=1;//在全局是定义,初始化为1;在局域不合法
static int i;//在全局和局域都是定义,且初始化为0
static int i=1;//在全局和局域都是定义,且初始化为1
auto int i;//在全局不合法;在局域是定义,没有初始化
auto int i=1;//在全局不合法;在局域是定义,且初始化为1
register int i;//在全局不合法,在局域是定义,没有初始化
register int i=1;////在全局不合法;在局域是定义,且初始化为1
int i;//在全局是定义,且初始化为1;在局域是定义,没有初始化
int i=1;//在全局和局域都是定义,且初始化为1
如果不加存储类型修饰符,在非全局域定义变量,默认为auto类型,而在全局域定义变量,则默认为extern类型。