/*post_pre.c--前缀和后缀*/
#include<stdio.h>
int main(void)
{
int a = 1 ,b = 1;
int a_post,pre_b;
a_post = a++; //后缀递增
pre_b = ++b; //前缀递增
printf("a a_post b pre_b \n");
printf("%ld %5d %5d %5d\n",a,a_post,b,pre_b);
return 0;
}
输出的结果是:
a a_post b pre_b
2 1 2 2
这里为什么要区分前后缀呢?
主要应用场景是循环的场景,如:
shoes=2
while(++shose<18.5){执行语句...}
前缀自增,是把自增后的值进行比较,即:3<18.5,若满足条件,则执行下面的循环语句;
若用后缀自增,则如下代码:
shoes=3
while(shoes++<18.5){执行语句...}
自增前进行比较,然后执行语句。但是到了shoes的值为18的时候,满足条件,执行循环语句,然后自增。shoes的值会变为19.这个时候,打印出来的内容会多出一行,而没有响应的结果值。会导致,打印出错。
C语言,最初是想简化书写,把自增直接放到while条件里面进行比较,但是,这里出现两种情况:自增后,还是自增前就会引发上面的问题。所以增加了自增前后缀的概念,来解决这个问题。前缀自增,就是自增后的值。前表示:先自增的意思。