C语言笔记3——运算符和表达式

目录

一.表达式

二.运算符


一.表达式

   表达式:由操作数和运算符组成的序列。操作数可以

优先级:各类运算符在一个表达式中运算的先后顺序。四项基本运算。

               为“单目高于双目,双目高于三目,三目高于赋值”。

       双目运算中的10个优先级的先后顺序可记忆为:“算术运算符高于移位运算符,移位运算符高于关系运算符,关系运算符高于逻辑运算符(不包括单目位逻辑运算符),位逻辑运算符高于逻辑运算符”

结合性:当一个运算量两侧的运算符优先级相同时运算的结合方向。

               除单目运算符、赋值运算符和条件运算符是右结合性外,其他都是左结合性。

表达式求值

(1)先按运算符的优先级高低次序进行。例如:先乘除后加减 

(2)如果在一个操作数两侧的运算符的优先级相同,则按C语言规定的结合方向(结合性)            进行。

二.运算符

运算符:表示某种运算功能的符号。

操作功能运算符分:

1.算术运算符                               + - * / % ++ --

2.关系运算符                               ><  ==   >=    <=    !=

3.逻辑运算符                               !&&  ||

4.位运算符                                   <<    >>    ~   |   ^   &

5.赋值运算符                               =及其扩展赋值运算符

6.条件运算符                               ?:

7.逗号运算符                               ,

8.指针运算符                               * &

9.求字节数运算符                        sizeof

10.强制类型转换运算符              (类型)  

11.成员运算符                             .->

12.下标运算符                             【】

13.其他                                        如函数调用运算符()

运算符:单目运算符         取负运算符( -)

              双目运算符         算术运算符(+)

              三目运算符          条件运算符(?:)

1.算术运算符
运算符含义举例结果
*乘法运算符a*ba和b的乘积
/除法运算符a/ba除以b的商
%求余运算符a%ba除以b的余数
+加法运算符a+ba和b的和
-减法运算符a-ba和b的差
注:%对象、结果为整                                                                                                                     优先级:()  →     * 、/、%     →   +、-                                                                                  结合性:从左至右                                                                                                               算术表达式:算术运算符和括号将运算量连接起来的式子。               

(1)关于除法的运算

     1/2=0,但1.0/2=0.5      【类型不同的数进行运算,其结果按类型优先级高的类型定】

(2)关于求余数的运算

#include<stdio.h>
int main()
{
   printf("%d\n",5%3);
   printf("%d\n",5%-3);
   printf("%d\n",-5%3);
   printf("%d\n",-5%-3);
   return 0;
}

 答:2、2、-2、-2   结果与前符号一致

2.关系运算符

运算符含义举例结果
大于3>50
小于3<5

1

<=小于等于3<=5

1

>=大于等于3>=50
==等于3==50
!=不等于3!=51

注:当比较结果成立时,结果为1;当比较结果不成立时,结果为0

.关系表达式:用关系运算符连接大的两个表达式构成。关系运算符实际上就是比较运算符

优先级:(<,<=,>=,>)高于(==,!=)

结合性:自左向右

算术运算符优先级高于关系运算符

3+(4<3)*4 值为:3      3+4<3*4 值为:1

3.逻辑运算符

运算符含义举例结果
逻辑“非”!30
&&逻辑“与”3&&00
||逻辑“或”3||0-1

注:

  • C语言中结果数值1为真,0为假
  •  数学上的区间:2≤X≤8,在C语言中必须写成2<=X && X<=8,
  •  如果&&的左侧为假,则C语言不会判断右侧。同理,如果||左侧为真,C语言不会判断右侧的真假

.逻辑表达式:用逻辑运算符连接两个表达式构成

优先级:!>&&>||

结合性:自左向右;

4.位运算(二进制)

运算符含义举例结果
&按位与3&5

1

|按位或3|57
^按位异或3^56
~按位取反~3-4
<<左移3<<16
>>右移3>>11

注:异或运算规则:相异为真,相同为假

       左移运算规则:左移时,最高位舍n位,最低位补n位,无补0

       右移运算规则:右移时,最低位舍n位,最高位补位根据运算量的类型决定(如果运算量是一个有符号整数则补齐号位,如果是无符号的整数则最高位补0

5.赋值运算符

 赋值运算符:“=”

公式:【变量】=【表达式】

优先级:!>算术>关系>&&和||>赋值

结合性:自右至左

6.条件运算符

条件运算符:?:

作用:判断一个逻辑表达式的结果,如果为真则指定执行某个表达式,如果位假则指定执行             另外的表达式。条件表达式的实质就是起程序控制作用 

公式:表达式1表达式2表达式3

求值规则:先求解表达式1的值,若为真(非0),求解表达式2,并把表达式2的值作为整个                   条件表达式的值;若表达式1的值为假(0),求解表达式3,并把表达式3的值作                     为整个条件表达式的值

7.逗号运算符

逗号运算符:

作用:将几个表达式隔开并以此计算

公式:【表达式】,【表达式2】,...【表达式n】

注:依次计算,最后一个表达式是整个逗号表达式的值

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值