这句话是什么意思;h=b=out";用C表示的平均值
我不知道这行是否只是一种奇怪的方式,将这句话是什么意思;h=b=out";用C表示的平均值,c,variable-assignment,assignment-operator,boolean-operations,C,Variable Assignment,Assignment Operator,Boolean Operations,我不知道这行是否只是一种奇怪的方式,将h和b设置为out,或者它是一个布尔表达式,将h设置为true(0?),如果b已经等于out它将h和b设置为out。 布尔值应该是h?b:出去表示如果h为true,则b为else out-因此它没有将任何值设置为h它不能是布尔值,因为这将使用=而不是= 是的,这是一种(奇怪的)设置两个变量的方法,基于b=out的值是outh=b=out; 在C中,这意味着将h和b都设置为out。 h=(b=输出);它表示布尔表达式。=始终是C中的赋值运算符,不能用于比较两个
h
和b
设置为out
,或者它是一个布尔表达式,将h
设置为true
(0?),如果b
已经等于out它将h和b设置为out。
布尔值应该是h?b:出去
表示如果h为true,则b为else out-因此它没有将任何值设置为h它不能是布尔值,因为这将使用=
而不是=
是的,这是一种(奇怪的)设置两个变量的方法,基于b=out
的值是out
h=b=out;
在C中,这意味着将h和b都设置为out。
h=(b=输出);它表示布尔表达式。=
始终是C中的赋值运算符,不能用于比较两个值。要获得“布尔”表达式,必须使用==
。表达式a=b
将b赋值给a,并且返回可在另一个表达式中使用的赋值。Soh=b=out代码>实际上将out
分配给b
和h
。它被解析为h=(b=out)
,因为在C中=
操作符是
赋值还返回与存储在lhs
中的值相同的值(因此可以使用a=b=c
等表达式)。赋值运算符的值为非左值(因此(a=b)=c
等表达式无效)
这不是布尔表达式输入错误。h=(b==out)OP询问的是h=b=out
,而不是h=b==out
,两个建议的副本都没有涉及布尔解释的部分。@Yunnosch解释正确的含义意味着它没有一些不同的含义,例如布尔表达式不,这不是布尔表达式。只有当它是h=b==out
时,它才是布尔表达式。=
和=
运算符非常复杂different@phuclv我知道这不是布尔表达式。这就是为什么我写了“布尔值”…我刚刚明白你的意思。这样的措辞很容易让人想到它的意思是“等价的布尔表达式将是”。不,这就是OP的想法。他认为这是一个类似于h=b==out
的布尔表达式。没有人会认为h=b=out
是h?b:out
h = b = out;
/* h is the number of code points that have been handled, b is the */
/* number of basic code points, and out is the number of ASCII code */
/* points that have been output. */