目录
[&& 和 || 是有短路效果的。](#&& 和 || 是有短路效果的。)
山不在高,有仙则名。水不在深,有龙则灵。
----CSDN 时时三省
1,赋值运算
代码如下:
cs
int FuZhi(void)
{
float b = 56.7;
int a;
float c;
a = b; // a = 56
c = a; // c = 56.000000
printf("a = %d, c = %f\n", a, c);
b = 56.3;
a = b; // a = 56
c = a; // c = 56.000000
printf("a = %d, c = %f\n", a, c);
return 0;
}
运行结果;
思考:
不同类型的数值赋值时,会有数据直接截断的效果。
2,算术运算符
代码如下:
cs
int SuanShuYunSuanFu(void)
{
int a = 5;
float b = 15.0;
int c;
c = b - a;
/*
b - a : 15.0 - 5.000000 = 10.000000
c = 10.000000
*/
c = (int)b % a;
printf("c = %d\n", c);
return 0;
}
执行结果如下;
思考:
注意:/ 和 % 符号的右边的数,不能为 0.
常见算术运算符如下:
3,逗号运算符
代码如下:
cs
int DouHao(void)
{
int a = 5;
int b = 6;
int c;
c = (a = a + 5, a + 6, b = a + b, b * 3);
printf("a = %d, b = %d\n", a, b);
printf("c = %d\n", c);
return 0;
}
执行结果;
思考:
逗号运算符可以用于分隔多个表达式,且最终结果将是最后一个表达式的值。
小括号里面的算式,都经过计算。
4,逻辑运算符
代码如下:
cs
int LuoJi(void)
{
int a = 3;
int b = 6;
int c = 7;
int d = 0;
d = (a - 3) && (c = b + c);
printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
a = 3; b = 6; c = 7; d = 0;
d = (a + 3) && (c = b + c);
printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
a = 3; b = 6; c = 7; d = 0;
d = (a - 3) || (c = b + c);
printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
a = 3; b = 6; c = 7; d = 0;
d = (a + 3) || (c = b + c);
printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
return 0;
}
执行结果:
思考:
这个执行结果,还是很有意思的。
&& 和 || 是有短路效果的。
短路效果是指,m && n,当m为1时,才会执行判断n的值;当m为0时,就不会执行判断n的值。
m || n, 当m为1时,不会执行判断n的值;当m为0时,才会判断n的值。
且 && 和 || 的运算结果,只能是 0 或 1。 注意和 & 和 | 运算符做区分。
&&:两个为1,才为1.
||:有一个为1,就为1.
代码解析:
d = (a - 3) && (c = b + c);
printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
因为a=3, 所以 a - 3 = 0, 所以 c = b + c 不会执行,所以c 的值不会变。因为 a - 3 为0,所以 && 运算的结果为 0.
5,自增自减运算符
代码如下:
cs
int ZiZengZiJian(void)
{
int a = 3;
int b = 3;
int c = 0;
int d = 0;
int e = 5;
int f = 0;
c = a++; // a = 4, c = 3, b = 4, d = 4`
d = ++b;
printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
//e = 5
f = e++ + ++e + e++ + e++ + ++e;
printf("e = %d, f = %d\n", e, f);
}
执行结果:
思考:
自增自减运算符(++、--):自增自减运算符分为前置自增自减和后置自增自减,分别表示先进行运算再进行自增自减操作和先进行自增自减操作再进行运算。
所以,c=a++; a的值先赋给c, a再自增1. 所以 a = 4, c = 3.