C语言操做符小结

  • C语言具备丰富的操做符,算数操做符包括+(加)、-(减)、*(乘)、/(除)和%(取模)。除了%操做符以外,其他的几个操做符不只能够做用于整型值,还能够做用于浮点型值。
  • << 和 >> 操做符分别执行左移位和右移位操做。&、|、和 ^ 操做符分别执行位的与、或、和异或的操做。这几个操做符都要求其操做数位整型。
  • = 操做符执行赋值操做。并且,C还存在复合操做符,它把赋值符和前面那些操做符结合在一块儿:
    +=    -=    *=    /=    %=    <<=   >>=    &=    |=    ^=
  • 复合操做符在左右操做数之间执行指定的运算,而后把结果赋值给左操做数。
  • 单目操做符包括!(逻辑非)、~(按位取反)、-(负值)和 + (正值)。++和 --操做符分别做用于增长或减小操做数的值。这两个操做符都具备前缀和后缀的形式。前缀形式在操做数的值被修改以后才返回这个值。然后缀形式在操做数的值被修改以前就返回这个值。&操做符返回一个指向它的操做数的指针(取地址),而 * 操做符对它的操做数(必须是指针)执行间接访问操做。sizeof 返回操做数的类型的长度,以字节为单位。最后,强制类型转换(cast)用于修改操做数的数据类型。
  • 关系操做符有:
    >    >=    <    <=    !=    ==
  • 每一个操做符根据它们的操做数之间是否存在指定的关系,或者返回真,或者返回假。逻辑操做符用于计算复杂的布尔表达式。对于&&操做符,只有当它的两个操做数的值都为真时,它的值才是真;对于 || 操做符,只有当它的两个操做数的值都为假时,它的值才是假。这两个操做符会对包含它们的表达式的求值过程施加控制。若是整个表达式的值经过左操做数即可决定时,,那么右操做数便再也不求值。
  • 条件操做符 ...?...:... 接受三个参数,它也会对表达式的求值过程施加控制。若是第一个操做数的值为真,那么整个表达式的结果就是第二个表操做数的值,第三个操做数就不会执行。不然,整个表达式的结果就是第三个操做数的值。,而第二个操做数将不会执行。
  • 逗号表达式把两个或者多个表达式链接在一块儿,从左到右依次进行求值,整个表达式的值就是最右边那个子表达式的值。
  • C并不具有显示的布尔类型,布尔值使用×××表达式来表示的。然而,再表达式中混用布尔值和任意的整型值可能会产生错误。要避免这些错误,每一个变量要么表示布尔型,要么表示整型,不可以让它身兼两职。不要对整型变量进行布尔值测试,反之亦然。
  • 左值是个表达数,它能够出如今赋值符的左边。它表示计算机内存中的一个位置。右值表示一个值,因此它只能出如今赋值符的右边。每一个左值表达式同时也是个右值,但反过来就不是这样的。
  • 各个不一样类型之间的值不能直接进行运算,除非其中之一的操做数转换为另外一个操做数的类型。寻常算数转换决定那个操做数将被转换。操做符的优先级决定了相邻的操做符哪一个先被执行,若是它们的优先级相等,那么它们的结合性将决定它们的执行顺序。可是,这些并不能彻底决定表达式的求值顺序。编译器只要不违背优先级和结合性规定,它能够自由决定复杂表达式的求值顺序。表达式的结果若是依赖于求值的顺序,那么它在本质上就是不可移植的,应该避免使用。
  • 1.有符号的右移位操做是不可移植的
  • 2.使用复合赋值福能够使程序更易于维护
  • 3.使用条件操做符替代 if 语句以简化表达式
  • 4..使用逗号操做符来消除多余的代码
  • 5.不要混用整型和布尔型值
相关文章
相关标签/搜索