C程序设计基础-运算符
算术运算符
-
基本的算术运算符
算术运算符 含义 例子 结果 + 加法运算符 a+b a与b的和 - 减法运算符 a-b a与b的差 * 乘法运算符 a*b a与b的乘积 / 除法运算符 a/b a除以b的商 % 求余运算符 a%b a除以b的余数 注意点:
- 对于运算符
/
:两个整数相除的结果为整数(如果有小数部分则舍去);两个实数相除的结果是双精度实数。 - 对于运算符
%
:参与运算的操作数必须为整数,其结果也为整数。
- 对于运算符
-
自增(
++
)与自减(--
)运算符
++
运算符的作用是使变量的值加1。++i
在使用i
之前,先将i
的值加1。i++
在使用i
之后,再将i
的值加1。- 例如:对于
i=2
。j=++i
是指先将i
的值加1变成3,然后将3赋给j
。j=i++
是指先将i
的值2赋给j
,再将i
加1变成3。
- 例如:对于
--
运算符的作用是使变量的值减1。--i
在使用i
之前,先将i
的值减1。i--
在使用i
之后,再将i
的值减1。- 例如:对于
i=2
。j=--i
是指先将i
的值减1变成1,然后将1赋给j
。j=i--
是指先将i
的值2赋给j
,再将i
减1变成1。
- 例如:对于
- 算术运算符的优先级
++、--
两者优先级相同,但是高于其它算术运算符。*、/、%
三者优先级相同,但是优先级低于++、--
,高于+、-
。+、-
两者优先级相同,是所有算术运算符中优先级最低的。
- 算术表达式
- 定义:在C语言中用算术运算符和括号将运算对象(操作数)连接起来的、符合C语法规则称为算术表达式。
- 算术表达式求值时的优先级:先按运算符的优先级别执行(先乘除后加减);如果运算符的优先级相同则自左向又计算。
赋值运算符
- 赋值运算符:赋值符号
=
就是赋值运算符,它的作用是将一个数据(表达式的值也可以)赋给一个变量。 - 复合赋值运算符:
+=、-=、*=、%=、/=
- 例子:
a+=3
等价于a=a+3
,a*=b+2
等价于a=a*(b+2)
,a%=3
等价于a=a%3
。
关系运算符
-
关系运算符
关系运算符 含义 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于 -
关系运算符的优先级
<、<=、>、>=
四个关系运算符优先级相同,但是优先级高于==、!=
两个关系运算符。==、!=
两个关系运算符优先级相同,但是优先级低于<、<=、>、>=
四个关系运算符。- 示意图:
- 关系表达式
- 定义:用关系运算符将两个数值或数值表达式连接起来的式子,称为关系表达式。
- 例子:假设
a=2,b=3
,则a>b
表达式的值为“假”,即值为0;a<b
表达式的值为“真”,即值为1。
逻辑运算符
-
逻辑运算符
逻辑运算符 含义 例子 结果 && 逻辑与 a&&b 如果a和b的都为真,则结果为真,否则为假。 || 逻辑或 a||b 如果a和b有一个及以上为真,则结果为真;二者都为假时结果为假。 ! 逻辑非 !a 如果a为假,则!a为真。如果a为真,则!a为假。 -
逻辑运算符的优先级
! > && > ||
- 逻辑运算符中的
&&、||
的优先级低于关系运算符,!
的优先级高于算术运算符。
- 用逻辑运算符将关系表达式或其它逻辑量连接起来的式子就是逻辑表达式
算术、赋值、关系、逻辑运算符的优先级
-
以下运算符的优先级从高到低排列如下:
运算符 来源 !、++、– 逻辑、算术运算符 *、/、% 算术运算符 +、- 算术运算符 <、<=、>、>= 关系运算符 ==、!= 关系运算符 && 逻辑运算符 || 逻辑运算符 =、+=、-=、*=、%=、/= 赋值、复合赋值运算符
条件运算符
- 条件运算符
- 条件运算符由两个符号
?和:
组成,必须一起使用。因为其要求有三个操作对象,又称为三目运算符。
- 条件表达式
- 一般形式为
表达式1? 表达式2:表达式3
- 例子:
max=(a>b)? a:b
,如果a大于b则将a的值赋给max,如果a小于等于b则将b的值赋给max。
逗号运算符
- 逗号运算符:
,
就是逗号运算符。 - 逗号表达式
- 一般形式为
表达式1,表达式2,...,表达式n
- 按顺序求出表达式1、表达式2、···,表达式n的值,结果为表达式n的值。
强制类型转换运算符
- 强制类型转换的一般形式为:
(类型名)(表达式)
,注意括号。 - 例子:
(int)a
:将a转换为int
型。double(x+y)
将x+y的值转换为double
型。
参考资料
- C程序设计(第五版),谭浩强著。