前缀和后缀讨论
前缀:++ 出现在其作用的变量前;
后缀:++ 出现在其作用的变量后;
1.单独使用
从下面的结果可以看出对输出没有影响,效果等同于
super=super+1;
ultra=ultra+1;
#include <stdio.h>
int main(void)
{
int ultra = 0, super = 0;
while (super < 5)
{
super++;
++ultra;
printf("super = %d, ultra = %d \n", super, ultra);
}
getchar();
return 0;
}
输出显示结果:
super = 1, ultra = 1
super = 2, ultra = 2
super = 3, ultra = 3
super = 4, ultra = 4
super = 5, ultra = 5
2.当运算符(++)和运算对象是复杂表达式的一部分
此时,使用前缀和后缀的效果不同;
如代码,b= a++ ,while(++a<23)等
后缀:先赋值再递增,如 a_post = a++;
前缀:先递增再赋值,如pre_b = ++b;
#include <stdio.h>
int main(void)
{
int a = 1, b = 1;
int a_post, pre_b;
a_post = a++; //先把a=1先赋值给a_post,再进行a=a+1运算进行递增
pre_b = ++b; //进行b=b+1运算进行递增,再把b的值(b此时值等于2)赋值给pre_b
printf("a a_post b pre_b \n");
printf("%1d %5d %5d %5d\n", a, a_post, b, pre_b);
return 0;
}
输出显示结果:
a a_post b pre_b
2 1 2 2
递减运算符,跟上面同理.
新手,有错误请帮忙提醒下,谢谢