C在if判断条件中混入?

#include <stdio.h>

int main()
{
    int a=9, b = 0;  
    char *p ;
    int tmp=0;
    if(1>0?0:0){
        printf("1>0 1
");
    } else {
        printf("1>0 0
"); // 1>0 0
    }   
    if(1>0?++tmp:0 && 1>0?--tmp:0) {
        printf("1, %d
", tmp); // 1, 1
    } else {
        printf("0, %d
", tmp);
    }  
}

解释下为什么下面输出的是1,1

原文地址:https://www.cnblogs.com/micoblog/p/12053101.html