Expression of if statement is a sequence point.

Sequence point is a specified point in the execution sequence where all side effects of previousevaluations are complete and no side effects affects on all the subsequent evaluations.


However, MS Visual Studio gives different answer in both the cases.

Can any expert justify it who has knowledge in sequence point?

Code:
#include <stdio.h>
int main()
{
     int i=0;
     if ( --i ) // i is -1 now which is true
        printf(" One \n");
     else   
         printf("Two");

     return 0;
 }
Output: One

Code:
#include <stdio.h>
int main()
{
     int i=0;
     if ( i-- ) //i should be -1  after evalueation if expression... but its remaining 0
                // which is false
        printf(" One \n");
     else   
         printf("Two");

     return 0;
 }
Output: Two