cdsn_Python 2022-12-14 15:39 采纳率: 69%
浏览 65
已结题

关于scanf输入整形的问题

问题遇到的现象和发生背景

实在是想不懂这道期中考试错题,考试的时候就没想明白下方题目中两个123是啥东西,都有啥区别。

遇到的现象和发生背景,请写出第一个错误信息

题目如下:
“对于语句int a, scanf("%d", &a); 请问从键盘连续读入的123与语句执行后放置于变量a中的123有区别么?请从数据类型和存储结构角度加以说明。”

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容

只拿了不到一半的分数(可能是友情分)

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

我的答案:1)对于数据类型,连续读入一个int整形,而直接将123放置则为一个int整形,数据类型没有区别;
2)对于存储结构,分开输入的三个整数可能地址中,而直接赋值给a则能将123放到同一个存储地址中,因此存储结构不同,有区别

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

希望能解释一下到底有没有区别,有啥区别,就从类型和存储两方面回答

  • 写回答

4条回答 默认 最新

  • 关注

    int a = 123; 等号右侧的123是整形常量,而a是变量
    另外,scanf(“%d”,&a)的读取过程是,先逐个字符读取,如果是数字字符,就继续读取,直到遇到空格或者回车结束,然后将读取的数字字符转换为整形。读取到其他字符时,返回读取错误。所以,从键盘连续读入的123实际上是3个数字字符。给a赋值时,从缓存中读取这3个数字字符串并转换为整形。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月14日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效