Linux C语言:运算符(下)

一、位运算符应用

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)对于关系运算符,可以将常量放左侧,变量放右侧,编译错误比执行错误更容易发现,危
害也更小

if ( -1== fd) 

三、逻辑运算符

  • 用于连接多个关系表达式;
  • 结果是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) ;

 

 

相关推荐

  1. C语言学习day09:运算符

    2024-06-08 13:04:05       39 阅读
  2. Linux C语言开发(三)运算符和表达式

    2024-06-08 13:04:05       34 阅读
  3. C 语言运算符详解

    2024-06-08 13:04:05       37 阅读
  4. C语言运算符

    2024-06-08 13:04:05       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 13:04:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 13:04:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 13:04:05       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 13:04:05       20 阅读

热门阅读

  1. [汇总] CentOS中查询端口&终止进程的指令

    2024-06-08 13:04:05       8 阅读
  2. Vue:状态管理pinia

    2024-06-08 13:04:05       10 阅读
  3. 【微信小程序】uni-app 配置网络请求

    2024-06-08 13:04:05       11 阅读
  4. clickhouse学习笔记(三)常见表引擎

    2024-06-08 13:04:05       8 阅读
  5. ffmpeg视频,音频,图片支持的格式转换

    2024-06-08 13:04:05       8 阅读
  6. Redis集群搭建(Linux)

    2024-06-08 13:04:05       7 阅读