自增++x;先自增1,再运算
x++;先运算,再加一
x++和++x都相当于x=x+1;
例1.main()
{
int i=8;
printf(" %d",++i);//此处i+1后,输出i=9
printf(" %d",--i);//由上一行运算后为9,又经运算减1,后再输出,故输出结果8
printf(" %d",i++);//=8输出后,i再加1,故此处结果输出任然是8
printf(" %d",i--);//上一运算i+1后得9,后输出9,然后再减1得到下一运算,故该行结果为任然为9
printf(" %d",-i++);//上一运算i-1后得8,后输出-8,然后再加1得到下一运算,故改行结果为-8
printf(" %d",-i--);//上一运算i+1后得9,后输出-9,然后再减1得到下一运算,故改行结果为-9
}
例2.#include <stdio.h>
int main()
{
//int m = 10, n1, n2;
//n1 = m++;先将m的值赋给n1,然后m再做自增运算,所以此时,n1=10,m=11;
//n2 = ++m ;先将m做自增运算,然后在将运算后的m值赋给n2,所以此时,n2=11,m=11;
int a = 10,b =10, c, d;
c = (a++) + (++a);
/*由上例n1=m++,n2=++m,m++=11可得出c=10+12;分析:前面括号所得值为10,而前面括号中的a经过自增运算后a的值为11,然后赋值给后面括号中的a,
后面括号中的a经过自增运算后a的值为12,后面括号最后赋值为12;*/
d = (++b) + (b++);
/*由上例n1=m++,n2=++m,++m=11可得出d=11+11;分析:前面括号所得值为11,而前面括号中的a经过自增运算后b的值为11,然后赋值给后面括号中的b,
后面括号中的b先将值赋给后面括号,所以后面括号的值为11;*/
printf("c=%d\nd=%d\n",c,d);
return 0;
}