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 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来