4.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的
一个。可以用下边这样的代码吗?
((condition) ? a : b) = complicated_expression;
不能。? : 操作符, 跟多数操作符一样, 生成一个值, 而不能
被赋值。换言之, ? : 不能生成一个 ``左值"。如果你真的需
要, 你可以试试下面这样的代码:
*((condition) ? &a : &b) = complicated_expression;
尽管这毫无优雅可言。
参考资料: [ISO, Sec. 6.3.15]; [H&S, Sec. 7.1 pp. 179-180]。
翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)