首先,这两种运算符都必须作用于左值运算对象。但前置版本将对象本身作为左值返回,后置版本将对象原始值的副本作为右值返回。
例1、
int i=0,j;
j=++i;
得到 j=1,i=1.
int i=0,j;
j=i++;
得到j=0,i=1。
例2、
*a++等价于*(a++),其中解引用运算符对象是a未增加之前的值,最终该语句输出a开始时指向的那个元素,并将指针向前移动一个位置。
注、后置递增运算符返回初始的未加1的值。
首先,这两种运算符都必须作用于左值运算对象。但前置版本将对象本身作为左值返回,后置版本将对象原始值的副本作为右值返回。
例1、
int i=0,j;
j=++i;
得到 j=1,i=1.
int i=0,j;
j=i++;
得到j=0,i=1。
例2、
*a++等价于*(a++),其中解引用运算符对象是a未增加之前的值,最终该语句输出a开始时指向的那个元素,并将指针向前移动一个位置。
注、后置递增运算符返回初始的未加1的值。