C编程新手.为什么下面这段代码的输出不是0 20 0,而是它1 20 0?
printf ( "\n%d %d %d", x != 1, x = 20, x < 30 ) ;
Run Code Online (Sandbox Code Playgroud)
我的理解是代码将x分配给1以外的值(1 = true因此!= true为0)?有人能指引我完成逻辑吗?
我不知道为什么某些教育系统如此受欢迎,因此选择更具创造性的方法来教导具有未指定行为的错误代码,但由于评估这些参数的顺序未指定,因此程序的行为未定义.
也就是说,您可能假设代码是从左到右或从右到左"运行",但不需要这样的东西.事实上,任何事情都可能发生,包括任何输出或谋杀我的任何家庭.所以请不要!