-1
首先这是我的工作的问题:如何评估这些C表达式?
评估下列各表达式中C:
int x=1, y=7, z=0; char a='m';
1)
a ? y-x : x–y
2)x = 5 ? (y = z) : (z = y)
我明白其余的问题,但号码(1)混淆了我......是不是它应该是一个逻辑表达式? 我的意思是'm'
不能是真的也不是假的;我怎样才能回答这个问题?它只是“错误”?还是有我错过的东西?
对于数(2)(z=y)
应该执行其改变z
至7,但是不是应该是x == 5
和我尝试了在终端上和它的变化既x
和y
到0
的发言。
我错过了什么?
''m''是非零,麦角它的计算结果为TRUE;。 – UnholySheep
您可能想了解[*运算符优先级*](http://en.cppreference.com/w/c/language/operator_precedence)。 –
请注意,不会执行'z = y'; 'y = z'会被执行 - '(test)? if-true:if-false;'是三元结构。 –