繁体   English   中英

printf()内部的整数算术

[英]integer arithmetic inside printf()

C编程新手。 为什么下面这段代码的输出不是0 20 0而是1 20 0

printf ( "\n%d %d %d", x != 1, x = 20, x < 30 ) ;

我的理解是代码将x赋给非1的值(1 = true,因此!= true为0)? 有人可以指导我理解逻辑吗?

我不知道为什么对于某些教育系统来说,如此流行以至于选择了更多具有创造性的方法来教授具有未指定行为的不良代码,但是由于评估这些参数的顺序未指定,因此程序的行为是不确定的。

也就是说,您可能假设代码是从左到右或从右到左“运行”的,但不需要这样做。 实际上, 任何事情都可能发生 ,包括任何输出或谋杀我的家人。 所以请不要!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM