c - 为什么这段代码返回垃圾值?

标签 c printf conditional-statements

我的代码:

void main()
{
     while(1){
         if(printf("%d",printf("%d")))
             break;
         else
             continue;
     }
}

我知道printf()返回打印的字符数。那么,为什么上面的代码在应该输出1的时候却输出了垃圾值。 请解释一下。

谢谢。

最佳答案

因为第二个 printf 缺少它应该打印的数字...

顺便说一句,不要期望只看到 1,您会看到之前第二个 printf 打印的数字。例如。如果你的代码是

printf("%d",printf("%d", 7));

你会看到 71;首先将打印 7,然后打印 1。

关于c - 为什么这段代码返回垃圾值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549619/

相关文章:

c - Linux 上的 <conio.h> 头文件在哪里?为什么我找不到 <conio.h>?

c - 简单的C程序崩溃

c - 如何检测 `snprintf` 错误?

c printf pretty-print 格式

spring - Thymeleaf 中的条件包装

javascript - 如何将这个条件逻辑转换为三元表达式?

c - SSE 未对齐负载内在是否比 x64_64 Intel CPU 上的对齐负载内在慢?

c - 如何读取动态分配矩阵的元素,其中每个元素都是一个结构

c - 字符串的 Printf 不情愿地下降一行

css - 仅使用 CSS 有条件地隐藏 div?