#include< stdio.h >
int main(void)
{
int a = 6;
int b , c;
int d , e;
b = a++;/* b是6,a是7 */
c = ++a;/* c是8,a是8 */
d = a--;/* d是8,a是7 */
e = --a;/* e是6,a是6 */
printf ( "前缀自加:%d\n",c);
printf ( "缀自加:%d\n",b);
printf (" 前缀自减%d\n",e);
printf ( "缀自减%d\n",d);
return 0;
}
b = a++ 执行后 b = 6, a = 7
c = ++a 执行后 c = 8, a = 8
d = a-- 执行后 d = 8, a = 7
e = --a 执行后 e = 6, a = 6
正确输出为:8 6 6 8
有图有真相:
有一个简单的记忆方法,++在前,就是先自增,i在后,就是自增以后再给值;相反,i在前,就是先给出i的值,++在后,就是把值给出来以后再自增。
m=++i; i先自增,自增以后为9,然后把9给m
n=j++; 先把j的值10给n,然后再自增,j变成了11
所以得结果。
如果满意请采纳
#include< stdio.h >
int main(void)
{
int a = 6;
int b , c;
int d , e;
b = a++; //先赋值,后加,结果:b=6,a=7
c = ++a; //先加,后赋值,结果:a=8,c=8
d = a--;// 先赋值,后减,结果:d=8,a=7
e = --a;//先减,后赋值,结果:a=6,e=6
printf ( " 前缀自加:%d\n",c); //8
printf ( "后缀自加:%d\n",b); //6
printf (" 前缀自减%d\n",e); //6
printf ( "后缀自减%d\n",d); //8
return 0;
}