b = ( a + 1, a++ )是什么运算? //expression1,expression2
int a = 1;
int b = ( a + 1, a++ ); //a+
1
a不变为1, a++把值a 1先给b,然后a=a+1 = 2;
printf("%d/n",b); //b =1;
printf("%d/n",a + 1, a++);
//解释一:此例printf从左向右算,a++为后a=2+1=3, 然后输出a+1的值4
//解释二:从压栈来说printf("%d/n",a + 1, a++); 可否看成这样 printf("%d/n", fun1(), fun2() )
函数的参数是从右边向左压栈的, 首先压栈fun2(), 解栈fun2()时a的值就是3, 在压栈fun1(), 解栈fun1()时a的值就是4, 这就是结果, 不过压栈的方式有很多。
结果是1,4
请高手指点。