码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员-C学习笔记-运算符

时间:2015-12-09 11:50:56      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

 

     ------- ios培训、 android培训、java培训、期待与您交流! ----------

 

 一.算术运算符

   +        加
   -         减
   *         乘
   /         除
  %       取模
注意点: 取模运算不可以出现小数
取模运算的正负性取决于前面数字的正负
二.关系运算符
   >        大于
   <        小于 
   >=     大于等于
   <=    小于等于
   ==     等于
   !=      不等于
注意点:(1)关系运算符的结合性是从左往右的,上面4个运算符的优先级大于下面2

     (2)赋值运算符〈比较运算符〈算术运算符

     (3)关系运算符的结果只有0和1

三.逻辑运算符 :结果只有2个 真或者假

  &&  逻辑与 (只要有一个表达式为假,整个表达式的结果就为假) 一假则假

            如果前面的表达式为假,那么后面的表达式就不参与运算了。

            结合方向:从左往右

  || 逻辑或  (只要有一个表达式为真,整个表达式的结果为真)  一真则真

           如果前面的表达式为真,那么后面的表达式就不参与运算了

           结合方向:从左往右

   !逻辑非    真变假 假变真  

            结合方向 :从右往左

 注意点: (1)  !的优先级要高于比较运算符和算术运算符 

       (2)  &&  || 的优先级小于关系运算符  大于赋值运算符

       (3)  &&的优先级高于||

四.赋值运算符

 =     +=    -=    *=   /=   %=

 int a =2;

 a-=8;//等价于 a=a-8 

注意点:(1)所有赋值运算符的优先级都是小于算术运算符的

     (2)所有赋值运算符的优先级都相等,结合方向:从右到左

     (3) 赋值运算符是所有运算符中,除了逗号运算符以外,优先级最低的

五.sizeof运算符

 用来计算常量、变量、以及数据类型(某种数据类型的常量或变量)所占用的存储空间

注意点:(1)类型本身不占用存储空间,只是这种数据类型的数据才占用存储空间

     (2)当sizeof作用在数据类型上,小括号不可以省略

六.自增自减

 a++  a--

 ++a  --a

 规律:本身自增自减1返回值:前加后不加,前减后不减

 

代码演示:

 1 #include <stdio.h>
 2 
 3  int main(int argc  const char *argv[]){
 4 
 5    int a =10;
 6 
 7    int b =++a;
 8 
 9    printf("b=%d\n",b);// b=11
10 
11    int c =a++;
12 
13    printf("c=%d",c); //  c=11
14 
15    printf("a=%d\n",a);// a=12
16 
17  return 0;
18 
19 }


七.特殊运算符

1.逗号运算符 

表达式1,表达式2,表达式3,……,表达式n

注意点:(1)逗号表达式的运算过程为:从左往右逐个计算表达式。

              (2)逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。

             (3)逗号运算符的优先级别在所有运算符中最低。

2.三目运算符

条件表达式?结果1:结果2

如果条件成立,则返回结果1,否则返回结果2

八.位运算符

1. & 按位与   对应的二进制位上,一个为0就是0,全1才是1

             一假则假        

2. | 按位或   对应的二进制位上,一个为1就是1,全0才是0

                  一真则真        

3. ^ 按位异或  对应的二进制位上,不同为1,相同为0

(1) 多个数相互异或,交换顺序结果不变(类似加法交换律)

(2) 任何数异或0都是原来的数

(3) 相同的数相互异或,结果为0

4. ~ 按位取反  对应的二进制位   01  1

  负数正数取反+1    正数取反=负数-1   

5. >> 右移  m>>n  向右移动n位 

移出来的数删掉,移入位补符号位  (正数补0,负数补1

使用场景:快速计算一个整数除以2n次方,对于一个整数来说右移几次就是除以几次方

6. << 左移  m<<n  向左移动n

 移出来的数删掉,移入位补0    左移可能会改变符号位(正负性)

使用场景:当数比较小的时候,可以快速的计算这个数乘以2多少次方


黑马程序员-C学习笔记-运算符

标签:

原文地址:http://www.cnblogs.com/ly0709/p/5032080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!