当前位置: 首页 > 知识库问答 >
问题:

变量已更改为1,带有“if(var=0 | | var==0)”语句[重复]

慎芷阳
2023-03-14
int xx = 0;
if(xx = 0 || xx == 0) printf("4"); // if(TRUE||TRUE) then printf("4")
if(xx == 0) printf("5"); //xx been changed to 1??
printf("6\n"); 

我以为输出会是456,但输出是46。为什么啊?

共有1个答案

窦彦君
2023-03-14

根据运算符优先级,运算符|的优先级高于运算符=,然后

if(xx = 0 || xx == 0) 

是一样的

if(xx = (0 || xx == 0))

xx0||xx==0分配;这是true,然后隐式转换为1并分配给xx(因为xx是一个int),然后为if条件计算xx,并且它隐式地转换为值为truebool;这就是为什么您得到输出"4"。由于xx已分配给1,因此您没有得到输出"5"

我想你想要的应该是

if(xx == 0 || xx == 0)
//    ^^
 类似资料:
  • 我写了一个for循环在墙上唱99瓶啤酒。我正在使用一个if语句向var word返回一个特定的值。当瓶数为99到2时,则var word=“bottles”,当瓶数为1时,则var word=“bottle”。这工作得很好,但在最后一次迭代的最后一行中,当瓶子的数量为0时,我希望var word等于“bottles”,它仍然是“bottle”。 我的if语句的条件是否不正确?这就是最后三次迭代在浏

  • 1. if语句 目前我们写的简单函数中可以有多条语句,但这些语句总是从前到后顺序执行的。除了顺序执行之外,有时候我们需要检查一个条件,然后根据检查的结果执行不同的后续代码,在C语言中可以用分支语句(Selection Statement)实现,比如: if (x != 0) { printf("x is nonzero.\n"); } 其中x != 0表示“x不等于0”的条件,这个表达式称为控制

  • 本文向大家介绍javascript定义变量时有var和没有var的区别探讨,包括了javascript定义变量时有var和没有var的区别探讨的使用技巧和注意事项,需要的朋友参考一下 我们先来看一段代码 有过C++或Java编程经验的人可能会说:“这程序,死定了,变量竟然在引用了该变量的函数后边定义,bug会灭掉你的。”放在浏览器上运行一下,结果怎样?完美运行!接下来我们就说一下这是咋回事——有v

  • 检查变量的内容是否为数值、大写字母或其他。 if var is type if var is not type 参数 var 变量 名. type 请参阅下面的备注. 备注 受支持的 Type: integer 当 var 非空且包含不带小数点的纯数值字符串 (十进制或十六进制) 时为 true. 允许含有前导和尾随空格和 tab. 字符串可以以加号或减号开始. float 当 var 非空且包含

  • 问题内容: 如果声明变量而不使用“ var”,则变量始终变为GLOBAL。 在函数内部声明全局变量是否有用?我可以想象在某个事件处理程序中声明一些全局变量,但这有什么用呢?更好地使用RAM? 问题答案: 不,没有RAM好处或类似的好处。 w3schools谈论的是我所说的“内隐全球性恐怖” 。考虑以下功能: 看起来很简单,但是由于线路上的错字,它返回,而不是。并创建一个带有输入错误名称的全局变量:

  • 好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,