一、前置++,后置++
前置++: 先加一,再使用
后置++, 先使用,再加一
前/后置 - -的原理同上
代码如下:
#include <stdio.h>
int main()
{
//前置++ 和 后置++ 的区别
//前置++,先加一,再使用
int a = 2;
int b = 2;
b = ++a;
//b = ++a; 等价于: a = a+1; b = a;
//所以a = 3, b = 3;
printf("a = %d, b = %d\n", a, b);
//后置++, 先使用,后加一
a = 2;
b = 2;
b = a++;
//b = a++; 等价于 b = a; a = a+1;
//所以a = 3, b = 2;
printf("a = %d, b = %d\n", a, b);
return 0;
}
运行结果如下:
二、前置–,后置–
#include <stdio.h>
int main()
{
int a = 2;
int b = 2;
b = --a;
//b = --a; 等价于 a = a-1; b = a;
//所以a = 1; b = 1;
printf("a = %d, b = %d\n", a, b);
//此时:a==b==1
b = a--;
//b = a--;等价于 b = a; a = a-1;
//所以a = 0; b = 1;
printf("a = %d, b = %d\n", a, b);
return 0;
}
结果如下:
三、小试牛刀
#include <stdio.h>
int main()
{
int a = 1, b = 2, c = 3;
if ((b++ && a-- != 1) || (++c == 3))
{
//条件为假,if语句体体不执行
//b++,先使用b, b == 2,为真, 再加一,b == 3
//a--,先使用a, a == 1,1 != 1,为假, 再减一, a == 0
//if 判断语句第一个条件为假
//++c 先加一,c == 4, 在使用,4 == 3 为假
//所以if语句体不执行
//所以a == 0, b == 3, c == 4
--c;
}
printf("a = %d, b = %d, c = %d\n", a, b, c);
return 0;
}
Ending
希望可以帮助到大家