算术运算符和算术表达式(优先级,结合性等)

时间:2022-01-10 17:22:49

算术运算符和算术表达式(优先级,结合性等)

%  得到余数  7 % 2 得到1

运算符的优先级

C语言中,运算符的运算优先级共分为15级。1级最高, 15级最低。在表达式中, 优先级较高

的先于优先级较低的进行晕死。而在一个运算量两侧的运算符优先级相同时, 则按运算符的

结合性所规定的结合方向处理。

运算符的结合性

c语言中各运算符的结合性分为两种, 即左结合性(自左至右)和右结合性(自右至左)。

例如:

左结合性:

算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”结合,执行

x
-y,在+z的yuns。这种是左结合性。

 

右结合性:

例如:

最典型的右结合性运算符是赋值运算符。如x=y=z, 由于=的右结合性, 应先执行y=z, 

在执行x
=, 可以理解为x=(y=z)的运算。

c语言运算符中有不少为右结合性, 应注意区别,避免理解错误。

算术运算符和算术表达式(优先级,结合性等)

自增、自减运算符

自增1:自增1运算符记为++, 其功能是使变量的值自增1

自减1:自减1运算符记为--, 其功能是使变量值自减1.

自增1, 自减1运算符均为单目运算, 都具有右结合性。可有一下几种形式:

++i       i自增1后在参加其他运算。
--i i自减后在参与其他运算
i
++ i参与运算后, i的值在自增1
i
-- i参与运算后, i的值在自减1
void main()
{
int i, j;
i
= 5;
j
= i++;
printf(
"%d, %d", i, j); #注意, 如果是-i++ 呢?结果是-6
}

// i 的值为6, j 为5

增加难度

算术运算符和算术表达式(优先级,结合性等)

思路:

 i = 5, 然后i++ , 在i-- 这时候i是5, 然后-i 也就是-5 -- 也就是-6了 

 

 逗号运算符和逗号表达式

在c语言中逗号“,”也是一种运算符, 称为逗号运算符。其功能是把两个表达式连接起来组成

一个表达式, 成为逗号表达式。

其一般形式为:

表达式1, 表达式2

其求值过程是分别求两个表示式的值, 并以表达式2的值作为整个逗号表达式的值。

注意了,而实际得到的是表达式1的值

算术运算符和算术表达式(优先级,结合性等)

 

那么怎么才能得到第二个值呢?在外面加个括号

算术运算符和算术表达式(优先级,结合性等)