26 局部变量和全局变量

本博客主要内容为 “小甲鱼” 视频课程《带你学C带你飞》【第一季】 学习笔记,文章的主题内容均来自该课程,在这里仅作学习交流。在文章中可能出现一些错误或者不准确的地方,如发现请积极指出,十分感谢。
也欢迎大家一起讨论交流,如果你觉得这篇文章对你有所帮助,记得评论、点赞哦 ~(。・∀・)ノ゙

1. C99 新标准

  C99 标准允许在 for 语句的第一个表达式部分声明变量,它的作用范围仅限于复合语句的内部。如在下面的代码中
26 局部变量和全局变量_第1张图片
for 语句中对于整数型变量 i 的改变并不会影响到 printf("after, i = %d", i) 的部分。这里 for 语句因为定义了同名的i变量,所以它屏蔽了第一个定义的i变量。换句话说,在 for 语句的循环体中,无法直接访问到外边的i变量。

2. C 语言允许在程序的任意位置声明变量

  允许变量在需要时才声明是一件非常棒的事情,因为如果当你的函数体非常庞大的时候,你总不会愿意往前翻好几个屏幕去看某个变量 i、j、k 是什么意思吧。

  有些朋友可能会有所担心:“要是到处定义变量,那一不小心重复定义了怎么办?”,其实这是编译器应该关心的问题(编译器会找出重复定义的变量并报错),你放心使用就可以了。

3. 全局变量

  在函数里边定义的,我们叫局部变量;在函数外边定义的,我们叫外部变量,也叫全局变量。有时候,我们可能需要在多个函数中使用共同的一个变量,那么就会用到全局变量。因为全局变量可以被本程序中其他函数所共用的。

  与局部变量不同,如果不对全局变量进行初始化,那么它会自动初始化为 0。

  如果在函数的内部存在一个与全局变量同名的局部变量,编译器并不会报错,而是在函数中屏蔽全局变量(也就是说在这个函数中,全局变量不起作用)。

  如果一个全局变量在使用之后才被定义,那么你可以在对该全局变量进行访问之前,使用 extern 关键字对该变量名进行修饰。这样就相当于告诉编译器:这个变量我在后边定义了,你先别急着报错。

4 参考

[1] “小甲鱼” 视频课程《带你学C带你飞》【第一季】P31

你可能感兴趣的:(C)