赞
踩
#include<stdio.h>
int main()
{
int a = 9;
int c = a++;
printf("%d\n", c);
c = --a;
printf("%d\n", c);
}
运算结果:
运算过程其实就是
首先看到是后缀模式,先赋值后运算,先把9赋值给c,a再进行自增运算,此时,a是10,c是9.所以第一次输出c也就是9
然后看到是前缀模式,先运算后赋值,先把a=10进行一次自减运算,此时a=9,然后把a=9赋值给c,所以第二次输出c也是9;
总结一下就是,前缀模式就是符号在前,所以先进行运算,后缀模式是符号在后,所以是后进行运算。
上面是一种理解方式,那么进一步来理解前缀和后缀最本质的区别就是
以这段代码为例,a的初始赋值为9,那么此时对a做一个自增自减运算时,无论你是前缀模式还是后缀模式,a的值都会增加,即a的值已经是10了,而区别就在于,如果你是后缀模式,那么(a++)这个式子的值为9,如果你是前缀模式,那么(++a)这个式子的值为10。也就是说这二者的区别在于这二者的缀表达式的值有一丝差别。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。