加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C中y = x <= 2是什么意思?

发布时间:2020-12-16 06:49:25 所属栏目:百科 来源:网络整理
导读:我在C语言中有以下代码片段. int main(){ int x = 1,y = 1; for( ; y ; printf("%d %d ",x,y)) { y = x++ = 2; } printf("n"); return 0;} 它给出了类似的输出 2 13 14 0 我不明白y = x = 2的输出和含义. 解决方法 y = x = 2由2部分组成:(1)x和(2)赋值y =
我在C语言中有以下代码片段.

int main()
{
    int x = 1,y = 1;
    for( ; y ; printf("%d %d  ",x,y))
    {
        y = x++ <= 2;
    }
    printf("n");
    return 0;
}

它给出了类似的输出

2  1
3  1
4  0

我不明白y = x< = 2的输出和含义.

解决方法

y = x <= 2由2部分组成:(1)x和(2)赋值y = ... x只是意味着增量后:你取x的值然后你将x增加1. 赋值y = …将y的值设置为1(如果x <= 2为真)或0(如果x <= 2为假) 现在棘手的部分是你的for循环:

for( ; y ; printf("%d %d  ",y))

请注意,在for循环中,每次循环后都会打印printf(“%d%d”,y)(增量条件).

并注意终止条件; y;这意味着只要您的y为1,您将保持循环.结合它们,你得到的结果是:

2 1 3 1 4 0

顺序看起来像这样:

//first x = 1,y = 1
y = x++ <= 2; //x = 1 <= 2 returns 1,x++,x becomes 2,y becomes 1
printf("%d %d  ",y)// you get your first 2 1
y = x++ <= 2; //x = 2 <= 2 returns 1,x becomes 3,y)// you get your 3 1
y = x++ <= 2; //x = 3 <= 2 returns 0,x becomes 4,y becomes 0
printf("%d %d  ",y)// you get your 4 0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读