对于我们C语言初学者而言,前置++与后置++是我们很容易混淆的一个点。
所谓前置++,即是++再使用。后置++,即是先使用后++。
下面我以一段代码为例:
int main()
{
int a, b, c;
a = 5;
c = ++a;//a=6,c=6
b = ++c, c++, ++a, a++;//c=8,a=8,b=7
b += a++ + c;//b=b + a++ + c此时a=9,b=23,c=8
printf("a=%d\nb=%d\nc=%d\n", a, b, c);
return 0;
}
初始时a的值为5,而c=++a,此处为前置++,a先自增为6再赋给了c,
所以此时c的值为6,a的值为6,在b=++c,c++,++a,a++(逗号表达式,即从左往右挨个执行语句,将最后一个逗号后的语句执行后赋给其他变量)
这个语句中,c先是由于前置++自增为7,在后置++变成8,a自增为7后再赋给了b,执行完赋值给 b后,a再由于后置++增加成了8。
最后b+=a++ + c,因为a++为后置++,所以执行此语句时a的值为8,b=b + a++ + c的结果即是将7+8+8=23赋给了b,执行完后a在自增为9,所以最后输出的结果即是a=9,b=23,c=8