今天学习变量的的作用域和声明周期的时候,发现变量定义位置不一样,那么就会出现不同的报错或者成功,如下如:
按道理这个是在声明变量后的打印,也就是在作用域内的,但是却显示了未声明变量,不懂。
可能的原因:C语言定义局部变量时,必须将局部变量定义在函数前面或者局部空间的起始位置。C语言对局部变量的要求比较严格。
解决办法:1、改为cpp文件,C++中可以随便定义变量,兼容c语言的大部分语法特性。2、将变量定义在函数的起始位置。
定义在大括号里面,就又没有了问题
局部变量a的作用域在大括号内,所以会有如上显示。