运算符与表达式(一)

运算符与表达式

C语言中的运算符

C语言中的运算符
优先级运算符含义运算对象个数结合方向
1()圆括号 自左至右
[]下标运算符
->指向结构体成员运算符
·结构体成员运算符
2!逻辑非运算符单目运算符自右至左
~按位取反运算符
++自增运算符
--自减运算符
-负号运算符
(类型)类型转换运算符
*指针运算符
&取地址运算符
sizeof求字节长度运算符
3*乘法运算符双目运算符自左至右
/除法运算符
%求余运算符
4+加法运算符双目运算符自左至右
-减法运算符
5<<左移运算符双目运算符自左至右
>>右移运算符
6<、<=、>、>=关系运算符双目运算符自左至右
7==等于运算符双目运算符自左至右
!=不等于运算符
8&按位与运算符双目运算符自左至右
9^按位异或运算符双目运算符自左至右
10|按位或运算符双目运算符自左至右
11&&逻辑与运算符双目运算符自左至右
12||逻辑或运算符双目运算符自左至右
13?:条件运算符三目运算符自右至左
14=赋值运算符双目运算符自右至左
+=
-=
*=
/=
%=
>>=
<<=
&=
^=
|=
15, 自左至右
  1. 表中的运算符的优先级由上向下依次递减,同一行的运算符具有相同的优先级
  2. 同一优先级的运算符,运算顺序由结合方向决定。所有的单目运算符、条件运算符、赋值运算符的结合方向是自右向左,其余运算符的结合方向是自左向右
  3. 不同的运算符要求有不同的运算对象个数
  4. 初等运算符 > 单目运算符 > 算术运算符(先乘除求余,后加减) > 关系运算符 > 逻辑运算符(不包括!) > 条件运算符 > 赋值运算符 > 逗号运算符
  5. 位运算符的优先级比较分散,有的在算术运算符之前,有的在关系运算符之前,有的在关系运算符之后
  6. 初等运算符包括圆括号、下标运算符、结构体成员运算符、指向结构体成员运算符

1. 算术运算符和算术表达式

  1. 基本的算术运算符

+、-、*、/、%

注:

  1. 由于键盘上面没有 X 号,运算符 X 用 * 代替

  2. 由于键盘上没有除号,运算符除号用 / 代替。两个实数相除的结果是双精度实数,两个整数相除的结果是整数

  3. % 运算符要求参加运算的两个运算对象都为整数,结果也是整数

  4. 除 % 以外的算术运算符的操作数都可以是任何算术类型、

  1. 自增、自减运算符

作用:自增运算符 ++ 使运算变量的值加一,自减运算符 – 使运算变量的值减一

它们均是单目运算符。运算对象可以是整型或实型变量,但不可以是常量和表达式

  1. 算术表达式

用算术运算符和括号将运算对象连接起来的、符合C语言运发规则的式子。运算对象包括常量、变量、函数等

算术表达式的说明

  1. 在表达式中可以使用多层圆括号,但左、右括号必须配对。运算时从内层开始,由内向外依次计算表达式的值。
  2. 在求解表达式的值时,若包含不同优先级的运算符,则按运算符的优先级由高到低运算,若表达式中运算符的级别相同,则按运算符的结合方向进行
  1. 算术运算中的类型转换

  2. 自动转换

​ 如果一个运算符两侧的数据类型不同,则先自动进行类型转换,使二者具有同一种类型,然后进行运算。因此整型、实型、字符型数据间可以进行混合运算

不同类型的数据进行混合运算时,转换规律如下:

  1. +、/、*、/运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据都先转换为double型,然后进行运算
  2. 如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果都是double型
  3. 字符型数据与整型数据进行运算,就是把字符的 ASCII 代码与整型数据进行运算。字符数据可以直接与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的 ASCII 代码直接转换为double型数据,然后进行运算
  1. 强制类型转换

​ 可以利用强制类型转换运算符将一个表达式转换成所需类型

注意:

  1. 类型名上的括号不能缺少,表达式也应该用括号括起来
  2. 在强制类型转换时,得到一个所需类型的中间数据,而原来变量的类型并未发生变化
  3. 当自动类型抓换不能实现目的时,可以用强制类型转换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值