运算符和表达式

这篇博客详细介绍了C语言中的各种运算符,包括算数、关系、逻辑、位、赋值、条件和逗号运算符。还讨论了自增、自减运算符以及运算符的优先级和结合性。此外,提到了不同类型数据间的混合运算以及强制类型转换的规则。文章还阐述了算术表达式的构成,并强调了在不同数据类型混合运算时的类型转换原则。
摘要由CSDN通过智能技术生成

运算符和表达式

运算符

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

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

C运算符

C语言提供一下运算符:

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

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

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

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


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

  6. 条件运算符 (?:)

  7. 逗号运算符 (,)

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

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

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

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

  12. 下标运算符 ([])

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

基本的算数运算符

最常用的算术运算符

运算符含义举例结果
+正号运算符(单目运算符)+aa的值
-负号运算符(单目运算符)-aa的算数负数
*乘法运算符a * ba和b的乘积
/除法运算符a / ba除以b的商
%求余运算符a % ba除以b的余数
+加法运算符a + ba和b的和
-减法运算法a - ba和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。


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

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


强制转换

类型:

(类型名)(表达式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值