你可以这样来想:++a和a++,都是个表达式,最后的结果就取决于是先加,还是后加,如果是先加,那么最后的表达式的结果就是a的值加1,如果是后加的话,则表达式的值就是原来a的值;而无论是先加,还是后加,a的值计算后一定会加1。 比如: 如果a=1,b=a++,运算完b=1,a=2 如果a=1,b=++a,运算完b=2,a=2 当然也可以这么理解: a++就是a=a+1,其含义就是现将后面的a赋值给前面的a然后再加1. ++a就是a=1+a,其含义就是先对后面的a加1然后再赋值给前面的1. 但这只是在表达式中. 如果在单独的语句中二者都没有什么区别! 列:int a=1,b=1; a++;++b;//这里就是语句! printf("%d%d",a,b); 输出都是2. 而表达式则是if((a++)==1)和if((++a)==1)这里就有区别了! |