C语言 百分网手机站

C语言运算符的优先级和结合性

时间:2020-09-14 16:20:37 C语言 我要投稿

C语言运算符的优先级和结合性

  C语言运算符的优先级和结合性分别指的是什么呢?大家是否清楚呢?下面一起来看看!

  先来看一个例子:

  #includeint main(){ int a=10,b=1,c=2; a=b=c; printf( "12+3*5=%d ", 12+3*5); printf( "a=%d, c=%d ", a, c); return 0;}

  运行结果:

  12+3*5=27

  a=2, c=2

  1) 对于表达式12+3*5,很明显先进行乘法运算,计算3*5,结果为15,再进行加法运算,计算12+15,结果为27。也就是说,乘法的优先级比加法高,要先计算,这与数学中的规则是一样的。

  所谓优先级,就是当有多个运算符在同一个表达式中出现时,先执行哪个运算符。如果不想按照默认的规则执行,可以加( ),例如(12+3)*5的结果为 75,(2+5)*(10-4)的结果为 42。大部分情况下,它们的规则和数学中是相同的。

  2) 对于语句赋值语句a=b=c;,先执行b=c,再执行a=b,而不是反过来,这说明赋值操作符=具有右结合性。

  所谓结合性,就是当一个运算符多次出现时,先执行哪个运算符。先执行右边的叫右结合性,先执行左边的'叫左结合性。

  表达式(Expression)和语句(Statement)的概念在C语言中并没有明确的定义:

  表达式可以看做一个计算的公式,往往由数据、变量、运算符等组成,例如3*4+5、a=c=d等,它的结果必定是一个值;

  语句的范围更加广泛,不一定是计算,不一定有值,可以是某个操作、某个函数、选择结构、循环等。

  值得注意的是:以分号;结束的往往称为语句,而不是表达式,例如3*4+5;、a=c=d;等。

  3) 像 +、-、*、/ 这样的运算符,它的两边都有数据,例如 3+4、a*3 等,有两个操作数,我们称这样的运算符为双目运算符。后面还会讲解单目运算符和三目运算符。

【C语言运算符的优先级和结合性】相关文章:

c语言算术运算符10-06

C语言条件运算符09-25

C语言关系运算符09-21

C语言中的运算符10-07

C语言位运算和sizeof运算符详解10-02

关于C语言赋值运算符11-24

C语言复合赋值运算符10-06

C语言赋值运算符详解10-06

c语言位运算符的用法11-02

c语言位运算符的用法指导10-06