C语言错误总结

版权声明:转载请标明原文章地址 https://blog.csdn.net/weixin_41543617/article/details/85062951

最近在重新学习C语言,想系统的学习下,以巩固基础。所以这篇文章用来记录学习过程中遇到的问题。(如有不妥之处,敬请指出)

编译环境:VS2017;
参考书籍:C Primer Plus;

1.C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
:可以用scanf_s替换scanf;
或者添加宏定义#define _CRT_SECURE_NO_DEPRECATE

2.打印界面一闪而过
:可以在程序中加入system(“pause”);
显示界面如下
在这里插入图片描述
3.C语言中默认将常量类似于“2.0”储存为double型,当出现some是float类型,有如下语句:some = 4.0 * 2.0;会使用双精度进行乘法运算,然后将乘积截断成float类型宽度,这样做虽然计算精度更高,但会减慢程序的运行速度。可在浮点数后面加上f或F后缀覆盖默认设置,例如2.3f.

4.发现一个很神奇的现象,因为vs2017的scanf函数推荐用scanf_s,但是在往整型变量输入数字时没问题,为字符变量输入字符也没问题,但是往字符数组输入字符串却会报错,重新改用scanf后(添加宏定义#define _CRT_SECURE_NO_DEPRECATE,防止scanf报错),就能正常执行了。
看了下warning写的是:warning C4473: “scanf_s”: 没有为格式字符串传递足够的参数。

猜你喜欢

转载自blog.csdn.net/weixin_41543617/article/details/85062951
今日推荐