prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 3.16

我有一个复杂的表达式,我必须根据一个条件将它赋给两个变量中的一个。我可以使用这样的代码吗?

	((condition) ? a : b) = complicated_expression;


不可以。该?:运算符,像大多数运算符一样,会产生一个值,而你不能将值赋给一个值。(换句话说,?:不会产生一个左值。)如果你确实想这样做,你可以尝试类似

	*((condition) ? &a : &b) = complicated_expression;
虽然这不得不承认并不那么美观。

参考文献:ISO Sec. 6.3.15
H&S Sec. 7.1 pp. 179-180


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管