Vla*_* AC 2 c syntax ternary-operator conditional-operator
如何减少表达?如果我是对的,如果只有x = 0,则x指定0; 否则x指定1.然而,它怎么能缩短?
x = (x = 0) ? 0 : 1
Run Code Online (Sandbox Code Playgroud)
假设你的意思x == 0,这很短:
x = !!x;
Run Code Online (Sandbox Code Playgroud)
说明:
如果x是0,!x是1,那么!!x是0.
如果x不是0,!x是0,那么!!x是1.
如果x = 0是故意的,代码是未定义的.
但是你可以制作一个定义明确的较短版本,我认为它可以捕捉到作者的意图:
x = 1;
Run Code Online (Sandbox Code Playgroud)
因为价值x = 0是0.