a++是先用再加,++a是先加再用
单独使用时两者没有区别
如果为int a = 1
int b =++a,b的值为2
int b =a++,b的值为1
如果在int a = 1后加一行a++,则int b =a++后b的值为2
#include<stdio.h>
int main(){
int a = 10;
int b =++a;
int c =a++;
printf("%d,%d,%d",a,b,c);
return 0;
}
运行结果为a=12,b=11,c=11
赋值
即a += 3等价于a = a + 3
a /= 2等价于a = a / 2
#include<stdio.h>
int main(){
int a = 10;
int b = 5;
b += a;
b -= 3;
a -= b;
a *= b;
printf("%d,%d",a,b);
return 0;
}
结果为a=-24,b=12
实际上,a++等价于a+=1
运算符
== :等于
!= :不等于
> :大于
>= :大于等于
< :小于
<= :小于等于
运算符的结果有1(成立)和0(不成立)
如int a = 3<2
此时a的值为0
#include<stdio.h>
int main(){
int a = 3>2;
int b = 2;
printf("%d\n",a == b);
printf("%d\n",a <= b);
printf("%d\n",a != b);
printf("%d\n",a >= b);
printf("%d\n",a == b);
printf("%d\n",a < b);
printf("%d\n",a > b);
return 0;
}
逻辑运算符
&& 与 两边都为真,结果才是真
|| 或 两边都为假,结果才是假
! 非 取反
-
&&:左右两边满足都不为0时得到1,否则为0
结果为1的
printf("%d",1 && 2)
printf("%d",1 < 2 && 2 < 3)
printf("%d",1 && 2 % 1 == 0)
注:1 && 2 && 0结果为0,1 || 0 || 0结果为1
- !:printf("%d",!1)得到0(用法:!(X<0))
#include<stdio.h>
int main(){
int a;
printf("请输入一个两位整数:");
scanf("%d",&a);
printf("%d",a % 10 != 7 && a / 10 != 7);
return 0;
}