一、位运算符应用
1、按位或 | 置1
2、按位与 & 清0
3、按位翻转
二、关系运算符
1、本质是比力运算,关系运算符组成的表达式,即为关系表达式。
2、关系表达式的结果是bool范例,0(false),1(true),主要应用于条件判断语句和循环控制语句中
3、编码规范
对于二元运算符,建议运算符前后加空格
比方:
- int a = 5, b = 6;
- a > (b - 1) 结果值为0
- (a + 1) == b 结果值为1
- a >= (b - 2) 结果值为1
- a < 100 结果值为1
- (a + 3) <= b 结果值为0
- a != (b - 1) 结果值为0
复制代码 4、数值地点区间的写法,注意和数学表达式做区分
10 < salary < 15 错误
salary > 10 && salary < 15 准确
5、注意区分== 和 =
(1)判断是否相等的关系运算符是==
(2)赋值运算符是=
- int fd = 0;
- if ( fd = -1)
- {
- printf(“Open file failed”);
- }
复制代码 (3)对于关系运算符,可以将常量放左侧,变量放右侧,编译错误比执行错误更容易发现,危
害也更小
三、逻辑运算符
- 用于连接多个关系表达式;
- 结果是bool范例,应用在条件判断语句和循环控制语句中;
1、逻辑与&&
- 逻辑与“&&”运算符的运算规律如下:
- 两个操纵数都为真,结果才为真;
- 一个操纵数为假,结果就为假;
- int x=5, y=18;
- (x>=5) && (y<20) 结果值为1
- ((x+1)>=0) && (y<17) 结果值为0
- ((x-8)>=0) && (y==18) 结果值为0
- ((x-5)>0) && (y!=18) 结果值为0
复制代码 如何判断闰年?
1)能被4整除且不能被100整除的年份,是闰年
2)能被400整除的年份,是闰年
- nt year = 2004;
- int days = 0;
- bool ret = 0;
- ret = (year % 4 == 0 && year % 100 != 0)|| (year % 400 == 0);
- if (ret == true) {
- days = 29;
- }
- else {
- days = 28;
- }
复制代码 2、逻辑或||
- 逻辑或“||”运算符的运算规律如下:
- 一个操纵数为真,结果就为真;
- 两个操纵数为假,结果才为假;
- int x=5, y=18;
- ((x>=5)) || (y<20) 结果值为1
- ((x+1)>=0) || (y<17) 结果值为1
- ((x-8)>=0) || (y==18) 结果值为1
- ((x-5)>0) || (y!=8) 结果值为1
复制代码 3、逻辑反!
- int k=8;
- ! ( k ==0) 结果值为1
- ! ((k-8) == 0) 结果值为0
- ! (k<= 0) 结果值为1
复制代码
4、注意
- 逻辑运算是从左向右进行,假如左边结果已经能决定表达式的最终结果,右边的表达式就不再执行 (year % 4 == 0 && year % 100 != 0)|| (year % 400 == 0);
- 当year为2024时,由于||左边的结果为1,所以最终结果就是1,所以year % 400 == 0是不会执行的。
5、逻辑运算符-短路特性
- 对于&&,左边是0时,右边不再执行;
- 对于||,左边是1时,右边不再执行;
- int a = 0, b = -1, c = 3, d = 4;
- c = a++ && ++ b && d++;
- printf(“a = %d\n b = %d\n c = %d\n d = %d\n”, a, b, c, d);
复制代码 6、编写规范
- 在编写包含&&的表达式时,将最有大概为假的子表达式写在表达式的最左边;
- 在编写包含||的表达式时,将最有大概为真的子表达式写在表达式的最左边;
- 此方法可以提高程序的执行服从
四、特殊运算符
1、 条件运算符
三目运算符, 其运算的一样平常情势是:
<条件表达式> ? <表达式1> : <表达式2>
规则为:
假如条件表达式的值为真,整个表达式的值为表达式1的值
假如条件表达式的值为假,整个表达式的值为表达式2的值
- int x=82, y=101;
- x >= y ? x +18 : y - 100 //运算结果为1
- x < (y-11) ? x - 22 : y - 1 //运算结果为60
复制代码 2、举例
编写C语言程序,使用条件运算符求两个整数中的最大值。
- #include <stdio.h>
- int main()
- {
- int x = 99, y = 78, max;
- max = x > y ? x : y;
- printf("the max:%d\n", max);
- return 0;
- }
复制代码- int main()
- {
- int x, y=25;
- x=70;
- y= x++ > 70 ? 100 : 0 ;
- printf(“x=%d y=%d”, x, y);
- return 0;
- }
复制代码 运行结果: x=71 y=0
3、逗号运算符
多个表达式可以用逗号分开,每个表达式的值分别运算,但整个表达式的值是末了一个表达式的值。
其一样平常情势为:
(表达式1, 表达式2,..., 表达式n)
- float x = 10.5, y = 1.8, z = 0;
- z = (x += 5, y = x + 0.2) ;
- z = (x = y = 5, x += 1) ;
- z = (x = 5, y = 6, x + y) ;
- z = (z = 8, x = 5, y = 3) ;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |