因为:
如果没有static :
int x = 0;// 声明,并初始化为0
int x; // 声明
// 在此期间访问会遇到随机值(这么做应该被认为是错误的!)
x = 0; // 初始化
如果加了static :
【static int x=0;和static int x;x=0;为什么不一样呢?】static int x = 0; // 声明并初始化(此时为初始化赋值,如果这条语句出现在函数中,即便被多次调用,也只会执行一次 。)
static int x; // 声明并使用默认初始化值
// 在此期间访问会得到静态变量的系统默认值(int型为0)
x = 0; // 赋值为0
文章插图
注意事项
1、static全局变量和普通的全局变量
static全局变量在定义该变量的当前源文件内有效,在同一源程序的其它源文件中不能使用它 。而普通的全局变量在各个源文件中都是有效的(当一个源程序由多个源文件组成时) 。
2、static局部变量和普通的局部变量
static局部变量存放在静态存储区,其只在当前函数中起作用,但是其生存周期是直到当前程序结束为止,而局部变量存在于栈中 。
3、static函数和普通函数
static函数只在当前源文件中起作用,在其他文件中不起作用 。普通函数则可在其他源文件中调用 。
推荐阅读
- 周杰伦和五月天的关系
- 新闻传播学 和新闻与传播 硕士专业有什么区别
- 阿弥陀佛和释迦牟尼佛有何不同
- 威士忌和红茶怎么配
- 拼多多双旦和年货节活动规则
- 魔兽世界国服大脚插件的反和谐失效了,我开启原汁原味魔兽,也安装了花骨朵,但还是没效果,求助!
- 佳能7D和70D区别在哪?家用哪款好?
- 个股的支撑位和压力位怎么看
- 小说与散文,诗歌和戏剧的区别在哪里
- 老年和暮年的区别 老年和暮年有区别吗