printf("%d") 不显示我输入的内容

2024-02-26

My code:

printf("Enter a number : ");

scanf("%d", &number);

printf("%d is what I entered\n", &number);

I input 2,

预期输出:2 is what I entered

实际输出:2293324 is what I entered

这里有什么问题?


printf("%d is what I entered\n", &number);

是错误的,因为%d(in the printf) 需要一个类型的参数int, not int*。这会调用未定义的行为 https://en.wikipedia.org/wiki/Undefined_behavior如 C11 标准草案 (n1570) 所示(强调我的):

7.21.6.1 fprintf 函数

[...]

  1. If a conversion specification is invalid, the behavior is undefined. 282) If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined.

通过使用修复它

printf("%d is what I entered\n", number);

Then, 为什么scanf要求&变量名之前?

请记住,当您使用number,你通过了value变量的number当你使用&number,你通过了address of number(&是地址运算符)。

So, scanf不需要知道的值number。它需要它的地址(int*在本例中)以便将输入写入其中。

printf另一方面,不需要地址。它只需要知道值(int,在本例中)要打印。这就是为什么你不使用&变量名之前printf.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

printf("%d") 不显示我输入的内容 的相关文章

随机推荐

  • 使用串扰将多个图表与同一张表连接起来而不会相互影响

    我在下面创建了 Flexdashboard 最初在其中创建了四个数据框 然后其中三个数据帧显示为图表 dcross2 store supplier 和一个 dcross1 如表 我想要实现的是将所有这四个对象连接在一起crosstalk封装
  • 为什么在 T-SQL 中执行循环如此困难

    好的 我知道可以做到 我经常这样做 但是为什么在 T SQL 中做循环这么难 我可以想到很多原因 我想要解析查询结果集并做一些没有循环就无法完成的事情 但设置和执行循环的代码超过 20 行 我确信其他人也有类似的观点 那么为什么我们仍然没有
  • 格式化 XML 的十进制值

    我目前遇到一个问题 我们连接的系统期望接收 XML 其中包含三个格式化为小数点后一位的双精度字段 就我个人而言 我认为我们的系统应该能够以默认格式发送值 然后由其他系统根据需要格式化自己的表示形式 但可惜这似乎不是一个选项 我的基于 Jav
  • 当各个函数返回 inf 值时估计两个 gamma 函数的比率

    我正在估计两个伽玛函数的比率 两者的估计gamma x and gamma y 非常大 gt 10 300 但两者的比例应该相当小 from scipy special import gamma gamma x gamma y 不幸的是 有
  • C++ 正则表达式:哪个组匹配?

    我有一个正则表达式 其中包含通过 or 条件连接的各种子组 alpha digit 当我匹配字符串时1 a 2 我得到三个匹配项 1 a and 2 C 中有没有办法确定哪些子模式匹配 不直接 与std regex图书馆 匹配结果类负责子比
  • memcached 中的最大密钥长度和最大值大小是多少?

    我正在使用最新的 memcached 我可以知道最大密钥长度是多少 以及我们可以存储在 memcached 中的值的最大大小吗 如何将memcached与spring集成 有什么想法吗 如果你看一下source https github c
  • 参数字典包含不可为空类型的参数“id”的空条目

    我正在尝试通过以下方式从我的数据库检索数据id我的默认路由中的参数 routes MapRoute Default Route name controller action id URL with parameters new contro
  • 使用 SSL 联系 Active Directory

    我有一种根据 Active Directory 验证用户凭据的方法 我想将此方法与 SSL 结合使用 但无法使其工作 主要问题是我有一台服务器位于我们的网络之外 它称为 DMZ 吗 从那里我想联系我的活动目录 这就是我想使用 SSL 的原因
  • 导入 android.support 无法解决[重复]

    这个问题在这里已经有答案了 我收到一条错误消息 无法在该行解析 import android support import android support v4 app NotificationCompat 有没有人以前见过这个或者知道我能
  • MYSQL - 检索日期之间的时间戳

    All 我有一个 MYSQL 表 其中有一列称为时间戳 它是属于DATETIME数据类型 具有诸如 10 1 2009 3 25 08 PM 10 1 2009 3 30 05 PM 10 4 2009 3 40 01 PM 等值 我想编写
  • 使用选项“ -Xinject-code -extension ”插入 XJC+xsd+jxb 代码

    我正在尝试使用扩展程序 Xinject 代码 of xjc将一些代码添加到我生成的类中 对于以下简单的 xsd 架构
  • Pandas Dataframes.to_csv 截断长值

    Problem 我正在尝试在 python 中使用 Pandas 数据框存储大数据集 我的问题是 当我尝试将其保存到 csv 时 我的数据块被截断 如下所示 e 12 and 值1 值2 值3 值1853 值1854 解释 我需要将大量数据
  • C++/SQLite只输出一行数据

    我遇到一个问题 即我的 5 个测试行中只有一个会以 C 输出 我的代码是 include
  • Spring REST 模板 POST

    我正在使用 Spring 框架并尝试执行发布请求 我的 post 方法采用 url HttpMethod 和进入请求正文的参数 注意 network POSTRequest URL 中传递的 var URL 对于每次调用都是不同的 现在 如
  • 如何在 Kubernetes 中创建 post-init 容器?

    我正在尝试在 K8s 上创建一个 redis 集群 我需要一个 sidecar 容器来在所需数量的 redis 容器上线后创建集群 我有2个容器 redis和一辆边车 我正在运行它们statefulset有 6 个副本 我需要边车容器为每个
  • 使用 React、Redux 和 TypeScript 来更短地实现 mapDispatchToProps 的方法?

    我正在尝试找出一起使用 React Redux 和 TypeScript 时如何减少样板文件的数量 在这种情况下你可能不能 但想看看是否有人有想法 我目前有一个组件 它调度一个切换菜单的操作 在显示和隐藏菜单之间交替 为此 我定义了我的类
  • 如何使用异步任务

    异步任务问题 我已经遵循了一些教程 但我仍然不清楚 这是我目前拥有的代码 代码下面有一些问题 MainActivity 调用 SomeClassWithHTTPNeeds 然后调用 JSONParser AsyncTask 主要活动 Str
  • 访问同一类的另一个对象的受保护属性的方法

    一个对象的方法是否应该能够访问同一类的另一个对象的受保护属性 我正在用 PHP 进行编码 我刚刚发现一个对象的受保护属性可以被同一个类的方法访问 即使不是同一个对象 在该示例中 首先 您将在输出中得到 3 因为函数 readOtherUse
  • 在 for 循环中使用 str.split 时出现“ValueError 太多值无法解压”

    我之前就遇到过这个错误 原因很明显 但我在处理下面的代码片段时遇到了问题 usr bin python ACL group troubleshooters r user auto rx user nrpe r for e in ACL sp
  • printf("%d") 不显示我输入的内容

    My code printf Enter a number scanf d number printf d is what I entered n number I input 2 预期输出 2 is what I entered 实际输出