在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |