运算符和表达式

运算符

  • 一个操作数的运算符是一元运算符
  • 两个操作数的运算符是二元运算符
  • 三个操作数的运算符是三元运算符

条件运算符是C语言唯一的一个三元运算符,除此之外都是二元运算符

C运算符

C语言提供一下运算符:

  1. 算数运算符 (+ - * / % ++ –)

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

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

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


  5. 赋值运算符 (= 及其扩展形式)

  6. 条件运算符 (?:)

  7. 逗号运算符 (,)

  8. 指针运算符 (*和&)

  9. 求字节数运算符 (sizeof)

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

  11. 成员运算符 (.->)

  12. 下标运算符 ([])

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

基本的算数运算符

最常用的算术运算符

运算符 含义 举例 结果
+ 正号运算符(单目运算符) +a a的值
- 负号运算符(单目运算符) -a a的算数负数
* 乘法运算符 a * b a和b的乘积
/ 除法运算符 a / b a除以b的商
% 求余运算符 a % b a除以b的余数
+ 加法运算符 a + b a和b的和
- 减法运算法 a - b a和b的差

说明:

  • 由于键盘无×号,运算符×以*代替
  • 由于键盘无÷号,运算符÷以/代替。两个实数相除的结果是双精度实数,两个整数相除的结果为整数。但是,如果除数或被除数中有一个负数,则舍入的方向是不固定的。
  • %运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数
  • 除%以外的运算符的操作数都可以是任何算术类型

自增(++),自减(–)运算符

自增,自减运算符的作用是使变量的值加1或减1,例如:

++i,–i (在使用i之前,先使i的值加(减)1)

i++,i– (在使用i之后,使i的值加(减)1)

算术表达式和运算符的优先级与结合性

用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子成为C算术表达式

C语言规定了运算数的优先级,还规定了运算符的结合性


算术运算符——>自左至右

赋值运算——>自右向左

不同类型数据间的混合运算

如果一个运算符两侧的数据类型不同,则先自动进行类型转换,是两者成为同一类型,然后进行运算。


低——————————————————————————————>高

int(char,short)–>unsigned int–>long–>unsigned long–>double(float)–>long double


按照从高到低的顺序给各种数据类型分等级,依次为:long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 和 int。这里有一个小小的例外,如果 long 和 int 大小相同,则 unsigned int 的等级应位于 long 之上。char 和 short 并没有出现于这个等级列表,是因为它们应该已经被升级成了 int 或者 unsigned int。


当是从低级转换为高级时,是自动转换

从高级转换为低级时,需要进行强制转换


强制转换

类型:

(类型名)(表达式)

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信