【问题标题】:What does the variable stores when it is assigned a printf statement in C [closed]当变量在 C 中被分配一个 printf 语句时,它会存储什么 [关闭]
【发布时间】:2012-12-10 02:42:05
【问题描述】:
       void main(){
       int i;
       i=printf("how r u?\n");
       i=printf("%d",i);
       printf("%d",i);}

上面的代码给出的结果如下: 你好吗? 91 我的问题: 9号店和1号店怎么样??

【问题讨论】:

  • "成功时,返回写入的字符总数。" :cplusplus.com/reference/cstdio/printf ... 轻松搜索(是的,这是 C++ 参考,但它没有改变...)
  • 更多相关内容:stackoverflow.com/q/3747501/2509
  • 仅仅因为可以通过参考手册页来回答问题并不意味着它是一个坏问题。我不确定为什么这被否决了。这是一个清晰明确的问题(具有足够简单的固定语法),有明确的答案。
  • @Novelocrat 有很多感觉,像这样的问题应该通过阅读文档来回答不好的问题。 没有问题太简单的古老口头禅已经被推翻。
  • 这种情绪有没有好的 meta.so 链接?这似乎不是简单可搜索的内容,并且生成的解释比在手册页中找到的更有针对性。

标签: c printf


【解决方案1】:

来自man page成功返回后,这些函数返回打印的字符数......如果遇到输出错误,则返回负值。

所以你得到9i,因为printf分别写出了91字符。

这也是相关的:Why does printf return a value?

【讨论】:

  • 谢谢@cegfault。我也改了字符,观察了变化
  • 但这会打印 -1 和 2。如果将返回字符数,第二个 printf 语句中的 2 怎么会出现int i=-1; i=printf("%d",i); printf("%d",i);
  • @sabarish:“-1”是两个字符(“-”和“1”)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
相关资源
最近更新 更多