目录
8.全局变量int a与局部变量int a的区别(2种变量的重名)
1.scanf与scanf-s
1.scanf不会检查输入边界,可能造成数据溢出 (eg:定义了一个5个元素的数组,结果用scanf输入了10个,群补放进数组里,造成数据溢出报错)
所以微软公司觉得这个函数不安全,它就自己整了个scanf_s的函数
2.scanf_s ,会检查输入边界 (eg:scanf_s("%s",arr,5) ,这里的arr表示数组,假设char arr[5],这个函数会读到5-1个字符),把5-1个字符存入数组arr中,arr中最后一个元素就是\0)
3.建议还是用scanf
因为scanf_s是微软搞给vs这个集成环境的,放到别的编译器上可能用不了
4.解决scanf的办法
在开头写上 #define _CRT_SECURE_NO_WARNINGS 1
一劳永逸的方法:vs中找到new啥啥的一个文件,因为当你创建一个源文件时,其实是在拷贝一份new啥啥的文件,所以你在new啥啥那里改,即可每次创建一个.c源文件就有上面那个东西
这么在new啥啥那里改:找到new啥啥+把new啥啥复制到桌面上+在桌面上打开并加上那句并保存+把桌面上的new啥啥放回原new啥啥所在的文件里替换掉原new啥啥
2.集成开发环境
vs是个集成开发环境 包括(编辑器+编译器+测试器),集成了MSVS这样的编译器,所以可编码
3.何为底层开发
操作系统及以下的东西的操作成为底层开发
4.Ctrl f5的作用
编译+链接+运行
6.int, long long, long的大小问题
int : 4个字节
long : 4 or 8个字节
long long :8
为什么long是4个或8个:C语言中要求只要long的字节>=int 即可
7. 小数55.5与55.5f的区别
float a=55.5 中 , 55.5默认是double类型,把它存入float类型的变量中,可能会有点错(可能),故可以改成 float a=55.5f ,加上个f 表明 55.5是个float类型
8.全局变量int a与局部变量int a的区别(2中变量的重名)
定义全局变量与定义局部变量重名时,操作时局部变量优先
注意:不能理解为局部变量的值覆盖了全局变量;
应理解为有2份a,一份a是全局变量,一份a是局部变量。他们两个在内存中的位置都不一样,全部变量a在静态区,局部变量a在栈区。只是重名时,优先使用局部变量的a。 等到出了局部变量a的定义域,局部变量a被销毁,只剩下全局变量a.