我有这个表情
(*p % 3 != 0) ? *p = (*p) + 1 : *p = (*p) + 2;
在 Turbo C++ 中,如果 *p 为 11,则计算结果为 14;如果 *p 为 33,则计算结果为 35
在 GCC (Windows) 中,它分别评估为 12 和 35,这是预期的
用括号括起来的格式如下:
(*p % 3 != 0) ? (*p = (*p) + 1) : (*p = (*p) + 2);
这种差异有什么解释吗?我猜它归结为编译器使用的优先顺序的差异,但无法查明根本原因