计算机二级

3773考试网计算机等级考试计算机二级正文

计算机等级考试二级C语言:运算符

来源:fjzsksw.com 2010-11-10 8:28:50

 

 

  七、条件运算符

  条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回两外两个表达式中的一个。

  <表达式1>?<表达式2>:<表达式3>

  在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。

  例如:

  a=(b>0)?b:-b;

  当b>0时,a=b;当b不大于0时,a=-b;这就是条件表达式。其实上面的意思就是把b的绝对值赋值给a。

  八、逗号运算符

  在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。

  假设b=2,c=7,d=5,

  a1=(++b,c--,d+3);

  a2=++b,c--,d+3;

  对于第一行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3,为8,所以a=8。对于第二行代码,那么也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)所以最终表达式的值虽然也为8,但a2=3。

  还有其他的如位逻辑运算符,位移运算符等等,我们等到讲位运算时再说明。

  九、优先级和结合性

  从上面的逗号运算符那个例子可以看出,这些运算符计算时都有一定的顺序,就好象先要算乘除后算加减一样。优先级和结合性是运算符两个重要的特性,结合性又称为计算顺序,它决定组成表达式的各个部分是否参与计算以及什么时候计算。

  下面是C语言中所使用的运算符的优先级和结合性:

  优先级 运算符 结合性

  (最高) () [] -> . 自左向右

  ! ~ ++ -- + - * & sizeof 自右向左

  * / % 自左向右

  + - 自左向右

  << >> 自左向右

  < <= > >= 自左向右

  == != 自左向右

  & 自左向右

  ^ 自左向右

  | 自左向右

  && 自左向右

  || 自左向右

  ?: 自右向左

  = += -= *= /= %= &= ^= |= <<= >>= 自右向左

  (最低) , 自左向右

  在该表中,还有一些运算符我们没有介绍,如指针运算符、sizeof运算符、数组运算符[]等等,这些在以后的学习中会陆续说明的。

 

 

上一页  [1] [2] [3] [4] 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1