int b=3,c=3;
输出1 是输出 逗号表达式 (a++,b++,c++) 的值
逗号表达式 的 值 等于 最右 一个式子 c++ 的 当前 值,就是 c 的当前值(尚未自增)
逗号表达式 里的3个式子 用的是 后缀加,所以 a,b,c 用当前值,出了逗号表达式后再 各自 增加 1。
输出2 是输出 自增 1 后 的 b 值(已自增)
输出3 是输出 c 的当前值 -- 这同编译器编译优化处理有关,它可能仍用原值,也可能已增1。若未增1,则 出了打印语句后 会自增1。
(建议,不要使用这种 带 不确定 因素的 语句。)
--
例子, MS VC++ 5.0
#include<stdio.h>
int main()
{
int a=1,b=3,c=3;
printf("%d, %d, %d",(a++,b++,c++),b,c);
return 0;
}
输出: 3, 4, 3
(不是 3,3,4)
温馨提示:答案为网友推荐,仅供参考