执行结果:

-(++i): i先自增再与负号结合
[cpp] view plaincopy
#include
int main()
{
int i = 8;
printf("%d\n",-(++i));
printf("%d\n",i);
return 0;
}
执行结果:

-(--i): i先自减再与负号结合
[cpp] view plaincopy
#include
int main()
{
int i = 8;
printf("%d\n",-(--i));
printf("%d\n",i);
return 0;
}
执行结果:

(i++) + (i++) + (i++)
[cpp] view plaincopy
#include
int main()
{
int i = 5;
int p = (i++) + (i++) + (i++);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:

说明:这里的i++是先参与运算后再自增1
所以:p = 5 +5 + 5
有三个i++,i自增三次后得到i= 8;、
(++i) + (++i) + (++i)
[cpp] view plaincopy
#include
int main()
{
int i = 5;
int p = (++i) + (++i) + (++i);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:

说明:++i i先自增1后再参与运算
先计算(++i)+(++i)首先自增两次 i = 7
(++i) + (++i) = 14
而后就变为 q = 14 + (++i)
此时的第三个++i自增了三次变为8
q = 14 +8 = 22
i自增了三次变成了8
(i--) + (i--) + (i--)
[cpp] view plaincopy
#include
int main()
{
int i = 5;
int p = (i--) + (i--) + (i--);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:

说明:这里的i--是先参与运算后再自减1
所以:p = 5 +5 + 5
有三个i--,i自减三次后得到i= 2;、
(--i) + (--i) + (--i)
--i i先自减1后再参与运算
[cpp] view plaincopy
#include
int main()
{
int i = 5;
int p = (--i) + (--i) + (--i);
printf("%d\n",p);
printf("%d\n",i);
return 0;
}
执行结果:

说明:先计算(--i)+(--i)首先自减两次 i = 3
(--i) + (--i) = 6
而后就变为 q = 6 + (--i)
此时的第三个++i自增了三次变为2
q = 6 +2 = 8
i自减了三次变成了2
*p++先取指针p指向的值,再将指针p自增1
[cpp] view plaincopy
#include
int main()
{
int a = {1,8,10,5,2};
int *p;
p = a;
printf("%d\n",*p++);
printf("%d\n",*p);
return 0;
}