关于一道题a=3,b=2,x=a>b++?a++:b++求x,a,b的值
#include<stdio.h>
int main()
{
int a=3,b=2,x;
x=a>b++?a++:b++;
printf("x=%d,a=%d,b=%d",x,a,b);
return 0;
}
结果为a=4,x=3,b=3;
前置自增a++是a先参与计算后加1
例如i=a++,a=1,输出的值a=2,i=1
后置自增a++是a先加1后参与计算
例如i=a++,a=1,输出的值a=2,i=2
回到题目中先判断a>b++是否为真,因为a=3>b=2(但b后面加了1,b=3)为真,x=a++=3,a后面也要加1,a=4
也可以用下列代码检验
int a=3,b=2,x;
int temp_x=a>b++;
printf("temp_x=%d\n",temp_x);
printf("b=%d",b);
结果为:b=3,temp_x=1(为真)