- 局部变量和全局变量
- 变量的作用域和生命周期
- 在VS2021中使用传统scanf警告原因
局部变量和全局变量的优先顺序以及如何区分
当局部变量和全局变量的变量相同时,会“局部优先全局”
通俗的讲,在大括号内的就是局部变量,大括号外的就是全局变量(我以前还以为在主函数里的也是全局变量,今天才知道是局部变量)
变量的作用域和生命周期
作用域,通俗的讲就是变量所作用的范围。生命周期也就是从变量的定义到离开其函数的一段时间。
关于变量的作用域,如果你在一个源文件中定义了一个变量(int a)然后在另外一个源文件中也想使用这个变量,直接写入extern int a。然后就可以使用了。
scanf警告原因
因为scanf它不管你输入的字符串(或者是数字)是否超过了原来定义的空间。比如我定义一个字符数组(char a[5])但是我输入超过五个字符(ashdjdjj),而运行的结果不是ashdj而是ashdjdjj,并且程序会崩溃。简单的说就是“函数对于参数的类型和个数限制不足。”(网上找的哈哈,语文不好,语言不精炼)