C语言中 scanf_s和 scanf 区别是什么

 我来答
惠企百科
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部

1、使用区别

scanf()不会检查输入边界,可能造成数据溢出。

scanf_s()会进行边界检查。

2、意思

scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据;
对应的输出为:printf 按照指定的格式输出数据;如printf("%d",x); 指按整型数据输出X中的值。

因为带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。

3、scanf_s()参数与scanf()不同

例如scanf(“%s”,&name,n),整形n为name类型的大小,如果name是数组,那n就是该数组的大小。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式