#include
int main()
{
int a=-2,b=0;
while(a++&&++b);
printf("%d,%d",a,b);
}
i++和++i的区别
i++和++i的区别是赋值顺序不同、效率不同以及i++不能作为左值,而++i可以。其中,赋值顺序不同是指,++i是先加后赋值;i++是先赋值后加;++i和i++都是分两步完成的。
第1次循环:while(-2 && 1)成立(非零),然后a++为-1
第2次循环:while(-1 && 2)成立(非零),然后a++为0
第3次循环:因为a为0,所以条件不成立,++b不执行。循环结束,a++为1
最后输出结果为1,2
a++&&++b
第一次循环后,while(-2 && 1)成立,然后a加1为-1
第二次循环后,while(-1 && 2)成立,然后a加1为0
第三次循环,因为a为0,所以条件不成立,++b不执行。循环结束,a加1为1
最后输出为1,2