问题描述:
假如i=3
如果是cout<<i<<i++;
则输出4 3
但是如果调用函数 f(i,i++);
void f(int a,int b)
{cout<<a<<b;}
输出的却是3 3
为什么?
编译平台是VC6
问题解答:
深究这个问题实在没意义,因为++的具体操作并没有在ANSI中得到定义,所以不同的编译平台会有不同实现方式,碰到这种情况,你唯一需要做的就是在代码中完全取消并避免这种混淆
我不知道你是什么编译平台,至少我在gcc上的输出结果都是3
代码中的二义性就应该避免 支持楼上