if..else内部的指针递增问题

作为相当复杂的功能的一部分,我编写了以下代码:

if( (((int)*(pointer-11 ....  )   //It is too long and complex
{
    *(pointer++)=*(pointer-12)+1;
}
else
{
    *(pointer++)=*(pointer-12);
}

if部分运作良好,而else部分运作类似:

*(pointer++)=*(pointer-11);

当我将递增代码与实际行分开放置时,

if( .... )
{
    *(pointer)=*(pointer-12)+1;
}
else
{
    *(pointer)=*(pointer-12);
}
pointer++;

它运作完美。但是最上面的代码也应该起作用,对吗?有什么想法吗?