对 C 中的 putchar 结果感到困惑

标签 c putchar

我有一个关于C中putchar函数的问题。在我学习的时候,我偶然发现了以下语句: printf("%c\n",putchar('A'+1)+2); 当我编译并执行程序时,结果是BD。我不明白,当我们输入 putchar('A' + 1) 时,结果将是 B,但是我们是如何得到 D 的呢?这个函数不是一次返回一个字符吗? 提前致谢

最佳答案

putchar 正在做两件事:

  1. 将字符“B”写入stdout
  2. 返回字符“B”作为函数调用的结果。

由于 putchar 返回“B”,因此它会添加 2,使其成为“D”。它作为参数传递给 printf,然后将“D\n”写入 stdout

关于对 C 中的 putchar 结果感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39577773/

相关文章:

c - 在 C 中运行 putchar() 函数时 'enter' 输入如何工作?

c - 在以下代码中使用 WHILE LOOP 的正确方法是什么?

c - 如何删除文本文件中的多余零?

c - 没有线程的竞争条件?

c - 使用 strtol 时我的 Switch 语句是否不正确?

c - 如何创建输入的每个单词以开始新行

c - 为什么c语言中的putchar()中x - x什么都没有?

c - 在 C 中帮助 While 循环

c - K&R book 1.5.1 文件复制

c - Putchar 字符出现在我的 printf 函数的前面