#include <stdio.h> int main(void) { int i,j,k,m,n,p; i = 8; j = 10; k = 12; //自增在操作数之前 m = ++ i; printf("i = %d\n",i ); //9 printf("m = %d\n",m ); //9 //自增在操作之后 n = j ++; printf("j = %d\n",j ); //11 printf("n = %d\n",n ); //10 //自减在操作之前 p = k --; printf("k = %d\n",k ); //11 printf("p = %d\n",p ); //12 //混合运算,先初始化 k = 12; m = 14; n = 5; p = (++m)*(n++)+(--k); //15*5+11=86 ; printf("p = %d\n",p); /** (++m)*(n++)+(--k) ==> (m = ++m)*(n = n++)+(k = --k) ==>15 * 5 + 11 ==>86 */ } /** 在算式m=++i中,对整型变量i进行了自增运算。由于自增运算符是置于i之前,所以是先对i进行加1操作,此时i的值已不再是8,而是9,然后再将自增后的i赋给变量m,所以输出为9 在算式p=k--中,对整型变量k进行了自减运算,由于自减运算符是置于k之后,所以是先进行赋值操作,这时p的值为12,然后再进行自减操作,这时k减为11 在算式n=j++中,对整型变量j进行了自加运算,由于自加运算符是置于j之后,所以是先进行赋值操作,这时n的值为10,然后再进行自加操作,这时j加为11 */
原文:https://www.cnblogs.com/starshine-zhp/p/12381350.html