首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么下面的c编程的输出是“1”,有人能解释吗?

为什么下面的c编程的输出是“1”,有人能解释吗?
EN

Stack Overflow用户
提问于 2021-05-14 13:08:22
回答 1查看 24关注 0票数 0

`

代码语言:javascript
复制
#include <stdio.h>
int main ()
{
    int i=0;
    for(printf("one\n");i<3 && printf("");i++)
    {
        printf("Hi!\n");
    }
    return 0;
}

`

**正如我们已经知道的“逻辑与运算符的短路条件( && )当我们求解for循环的条件时,根据短路概念,所使用的概念只是一个逻辑运算符,for i=0 i<3条件为真&& printf("")因此,在此语句中,左侧条件为真,因此不计算右侧条件

EN

回答 1

Stack Overflow用户

发布于 2021-05-14 13:16:49

查看printf()的参考资料,我们可以看到:

  • 如果成功,则返回写入的字符总数。

因此,给定i<3 && printf(""),第一次i为0,因此i<3为true,然后printf("")打印零个字符,返回0,这是false,因此表达式变为true && false,因此为false,因此循环终止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67529302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档