特殊运算符
一、"?"运算符
    "?"运算符是一个三目运算符, 其一般形式是:
      <表达式1>?<表达式2>:<表达式3>;
    "?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值。
例如:
    main()
{
int x, y;
      x=50;
          y=x>70?100:0;
    }
    本例中, y将被赋值0。如果x=80, y将被赋值100。
    因此, "?"运算符可以代替某些if-then-else形式的语句。
 
二、"&"和"*"运算符
    "&"运算符是一个返回操作数地址的单目操作符。
    "*"运算符是对"&"运算符的一个补充, 它返回位于这个地址内的变量值, 也是单目操作符。
    例如:
    main()
    {
          int i, j, *m;
          i=10;
          m=&i;          /*将变量i的地址赋给m*/
          j=*m;          /*地址m所指的单元的值赋给j*/
    }
    上面程序运行后, i=10, m为其对应的内存地址, j的值也为10。
  三、","运算符
    ","运算符用于将多个表达式串在一起, ","运算符的左边总不返回, 右边表达式的值才是整个表达式的值。
    例如:
    main()
{
int x, y;
          x=50;
          y=(x=x-5, x/5);    }
    上面程序执行后y值为9, 因为x的初始值为50, 减5后变为45, 45除5为9赋给y。
四、sizeof运算符
    sizeof运算符是一个单目运算符, 它返回变量或类型的字节长度。
    例如:
    sizeof(double) 为8
三目条件运算符?:的含义    sizeof(int)    为2
    也可以求已定义的变量, 例如:
    float f;
    int i;
    i=sizeof(f);
    则i的值将为4。
    五、联合操作
    Turbo C中有一特殊的简写方式, 它用来简化一种赋值语句,  适用于所有的双目运算符。其一般形式为:
    <变量>=<变量><操作数><表达式>
    相当于
    <变量><操作数>=<表达式>
    例如:
      a=a+b        可写成    a+=b
      a=a&b        可写成    a&=b
a=a/(b-c)    可写成    a/=b-c
  Turbo C规定了运算符的优先次序即优先级。 当一个表达式中有多个运算符参加运算时, 将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低, 同一行优先级相同。
    例如:
      表达式 10>4&&!(100<99)||3<=5 的值为1
      表达式 10>4&&!(100<99)&&3<=5 的值为0
    Turbo C运算符的优先次序
百度文库 - 让每个人平等地提升自我
    ()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)( 最高)
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)
  *(指针所指内容)  type(函数说明)  sizeof(长度计算)
      *(乘)    /(除)    %(取模)
    +(加)    -(减)                                 
    <<(位左移)          >>(位右移)                 
    <(小于)  <=(小于等于)  >(大于)  >=(大于等于) 
    ==(等于)      !=(不等于)                     
    &(位与)                                     
    ^(位异或)                                 
    |(位或)                                     
    &&(逻辑与)                             
    ||(逻辑或)                               
    ?:(?表达式)                                 
    =    +=  -=(联合操作)             
    ,(逗号运算符)      ( 最低)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。