目录
🍉2.运算符和表达式
2.1 C运算符
2.2基本的算术运算符
2.3自增( + + )自减( - - )运算符
2.4算术表达式和运算符的优先级与结合性
2.运算符和表达式
2.1 C运算符
C语言提供了以下运算符:
(1)算术运算符 ( + - * / % ++ -- )
(2)关系运算符 ( > < == >= <= != )
(3)逻辑运算符 ( ! && || )
(4)位运算符 ( << >> ~ | ^ & )
(5)赋值运算符 ( =及其扩展赋值运算符 )
(6)条件运算符 ( ? : )
(7)逗号运算符 ( , )
(8)指针运算符 ( * 和 & )
(9)求字节数运算符 ( sizeof )
(10)强制类型转换运算符 ( ( 类型 ) )
(11)成员运算符 (.->)
(12)下标运算符 ([])
(13)其他 (如函数调用运算符(())
2.2基本的算术运算符
最常用的算术运算符如图所示:
2.3自增( + + )自减( - - )运算符
自增(++) 自减( - - )运算符的作用是使变量的值加1或减1,例如:
++i,- -i(在使用i之前,先使i的值加(减)1)
i++,i- -(在使用i之后,使i的值加(减)1)
粗略地看, ++i 和 i++ 的作用相当于 i=i+1 。但 ++i 和 i++ 的不同之处在于:
++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语句:
①j=++i;i的值先变成4,再赋给jj的值为4)
②i=i++:(先将i的值3赋给ii的值为3然后i变为4)
2.4算术表达式和运算符的优先级与结合性
用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子称为C算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C算术表达式:
a*b/c-1.5+'a'
C语言规定了运算符的优先级(例如先乘除后加减),还规定了运算符的结合性在表达式求值时,先按运算符的优先级别顺序执行,如表达式 a-b* c,b的左侧为减号,右侧为乘号,而乘号优先级高于减号,因此,相当于a-(b*c)。如果在一个运算对象两侧的运算符的优先级别相同,如 ab+c,则按规定的“结合方向”处理。C语言规定了各种运算符的结合方向(结合性),算术运算符的结合方向都是“自左至右”,即先左后右,因此b先与减号结合,执行ab的运算,然后再执行加的运算自左至右的结合方向”又称“左结合性”,即运算对象先与左面的运算符结合。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性(例如,赋值运算符,若有a=b=c,按从右到左顺序,先把变量 c 的值赋给变量 b,然后把变量 b的值赋给变量 a)。关于“结合性的概念在其他一些高级语言中是没有的,是 C语言的特点之一,希望能弄清楚。