Linux C语言 08-运算符

Linux C语言 08-运算符

本节关键字:Linux、C语言、运算符优先级
相关C库函数:sizeof、printf

按照功能区分,运算符优先级以及使用示例:

类型运算符说明
赋值运算符=
算术运算符±*/%
关系运算符> < >= <= != ==
逻辑运算符&& || !
位运算符& | ^ ~ << >>
复合运算符+= -= *= /= %= &= |= ^=
自增自减++ –
逗号运算符,
问号运算符?
sizeof运算符sizeof

赋值运算符 =

1) 将等号右侧的内容赋值给等号左侧
2) 等号左侧必须是变量

算数运算符

1) +-*/
    */ 运算时有不同精度等级的数据,结果以最高精度形式输出
    例:5 * 1.2 = 6.0
2) %    
    * 两侧操作数必须为整型数据

关系运算符

1) > < >= <= !=    ==
    表达形式:表达式
    运算结果: 真(1)或者假(0)

逻辑运算符

1) && (逻辑与)
    表达形式:表达式1 && 表达式2
    运算规则:
        * 见0(假)出0,双1(真)为1
        * 若表达式1为假,表达式2不参与运算
    运算结果:0或者1
2) || (逻辑或)
    表达形式:表达式1 && 表达式2
    运算规则:
        * 见1(真)出1,双0(假)为0
        * 若表达式1为真,表达式2参与运算
    运算结果:0或者1
3) ! (逻辑取反)
    表达形式:!表达式
    运算规则:真变假,假变真
    运算结果:0或者1

位运算符

1) & 按位与
    运算条件:运算前所有的数据要全部转换成二进制,
              在对应位之间进行 逻辑与 运算
    表达形式:表达式1 & 表达式2
    运算规则:见0出0,双1为1
    运算结果:0或者1
    
2) | 按位或
    运算条件:运算前所有的数据要全部转换成二进制,
              在对应位之间进行 逻辑或 运算
    表达形式:表达式1 & 表达式2
    运算规则:见1为1,双0为0
    运算结果:0或者1
    
3) ^ 异或
    运算条件:运算前所有的数据要全部转换成二进制
              在对应位之间进行 异或 运算
    表达形式:表达式1 & 表达式2
    运算规则:相同为0,不同为1
    运算结果:0或者1
    
4) ~ 按位取反
    运算条件:运算前所有的数据要全部转换成二进制,
              在对应位进行 按位取反 运算
    表达形式:~表达式
    运算规则:1变0,0变1
    运算结果:0或者1
    
5) << 左移
    表达形式:表达式 << n 
    运算规则:数据整体左移,高位数据丢失,低位补0,
              在有效数据不丢失的情况下,左移n位,数据扩大2的n次方
    运算结果:略
    
6) >> 右移
    表达形式:表达式 >> n
    运算规则:数据整体右移,低位数据丢失,高位补0,
              在有效数据不丢失的情况下,右移n位,缩小2的n次方
    运算结果:略
    
           	 &    |    ^
    1 1        1    1    0
    1 0        0    1    1
    0 1        0    1    1
    0 0        0    0    0
    表达式 & 0  清零操作
    表达式 | 1    置一操作
    表达式 ^ 1    取反操作
    表达式 ^ 0    保持原样 
    
二进制数:(y表示移动位数)    
    指定某一位数置0:x &=~ (1<<y)
    指定某一位数置1:x |= (1<<y)
    指定某一位数取反:x ^= (1<<y)
    获取某一位的值:x &= (1<<y)

复合运算符

1) += -= *= /= %=
2) &=
3) |=
4) ^=

自增自减

1) ++ --
int a=0, b=0;
printf("a++=%d, ++b=%d\n", a++, ++b); // 运行结果 a++=0, ++b=1

逗号运算符

1) 分隔 ,
2) 逗号和小括号结合使用(a,b,c,d)
    直接取小括号中最后一个表达式的值
例:
    int num = (3,4,5);
    int a = (num += 3,6 + 9);
    int b = num += 3,6 + 9;
    int c = (num += (3,6 + 9));
运行结果:                
    a = 15    
    b = 8 
    c = 20

问号运算符

表达形式:表达式1 : 表达式2 ? 表达式3 
运算规则:
    * 表达式1为真 结果为表达式2
    * 表达式2为假 结果为表达式3
运算结果:

sizeof运算符

含义:求任意对象的大小(包括'\0')
大小:所占空间,单位是字节
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值