【C语言 - 学习总结】 01 - 运算符

一、基本运算

1. 算数运算符

  a.  +  加法运算符

  b.  -   减法运算符

  c.  *     乘法运算符

  d.  /     除法运算符       //  两个整数相除,结果为整数。

  e.  %   取余运算符(模运算)    //  注意: 1.  %两边都是整数  2.  %取余结果的正负性只跟%左边的数值有关。 

  拓展知识点:

      (1)  自动类型转换

      (2)  强制类型转换

      (3)  自动类型提升

 

 1 //代码演示:
 2 
 3
 4     // 两个整数相除
 5     int a = 7 / 3;    // 结果为:2
 6 
 7     // %取余结果的正负性只跟%左边的数值有关
 8     int b = -7 % 3;   //结果为: -1
 9     int c  = 7  % 3;   //结果为: 1
10 
11    // 自动类型转换(double->int)
12     int a = 10.8;
13 
14     // 强制类型转换(double->int)
15     int b = (int) 10.5;
16 
17     // 自动类型提升(int->double)
18     double c = 10.6 + 6;

 

  2. 关系运算符

      a.   <       小于运算符

      b.   >     大于运算符

      c.   <=   小于等于运算符

      d.   >=   大于等于运算符

      e.   ==   等于运算符

      f.   !=   不等于运算符

         注意:(1)关系运算的结果成立就为"真"(比如7>=3),就返回 1;不成立则为"假"(比如7<3),就返回 0

            (2)在C语言中,没有boolean类型,任何非0值都为"真",只有0值才为"假"。

 

//代码演示:
    
    int a = 10;

    // 根据关系运算的结果来判断
    if (10 == a)        //    不推荐写:a == 0;
        {
            printf("条件成立");
        } 
    else 
        {
            printf("条件不成立");
        }            

 

  3.逻辑运算符

      a.   &&  逻辑与运算符  // 又称 “短路运算符” ,如果第一个表达式不成立,后面一个表达式不参与计算

      b.   ||   逻辑或运算符  //  如果第一个表达式成立,则后面一个表达式不参与计算

      c.    !  逻辑非运算符  // 如果条件成立,就返回0;如果条件不成立,就返回1

        注意:逻辑运算的结果也只有两个:成立就为"真",返回1;不成立就为"假",返回0。

 

  4.赋值运算符

      (1)简单赋值运算符:=  // int a = 1;

      (2)复合赋值运算符

          a.  +=  加赋值运算符  // a += 1, 等同于 a = a + 1;

          b.  -=  减赋值运算符

          c.  *=    乘赋值运算符

          d.  /=     除赋值运算符     

          e.  %=   取余赋值运算符

 

  5. 自增自减运算符

      a.   ++  自增运算符

      b.   --    自减运算符

 

1 //代码演示
2 
3     a++;    // 先赋值,后自增
4     ++a;    // 先自增, 后赋值
5 
6     a--;      // 先赋值, 后自减
7     --a;      // 先自减, 后赋值

 

 

  6. 逗号运算符

      (1) 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为:

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

       (2)逗号表达式的运算过程是:从左到右的顺序,先计算表达式1,接着计算表达式2,...,最后计算表达式n。

       (3)整个逗号表达式的值是最后一个表达式的值。

 

1 // 代码演示
2 
3     int a = 2;
4     int b = 0;
5     int c;
6     c = (++a, a *= 2, b = a * 5);     //先计算++a,再计算a *= 2,最后计算b = a * 5;
7     printf("c = %d", c);

 

  7. 三目运算符

      三目运算符  表达式1 ? 表达式2 : 表达式3

 

// 代码演示
    
    int a = 6;
    int b = (a > 5) ? 10 : 9;    // 如果a > 5 成立,则a = 10 ,否则 a = 9;
 1 // 实例
 2 
 3     //计算2个整数之间的最大值
 4     int a = 10;
 5     
 6     int b = 99;
 7     
 8     int c = a>b ? a : b;
 9      
10     printf("c is %d\n", c);

 

  8. 位运算符

      a. &    按位与  // 常跟1进行按位与,得到某一位上面的值,可以用来判断奇偶性。

      b. |    按位或     

      c. ^     按位异或

            1.相同数值进行异或,结果肯定是0,比如9^9
            2.交换 9^5^6 == 9^6^5
            3.任何数值跟0进行异或,结果还是原来的数值,9^0 == 9
            4.a^b^a == a^a^b == 0^b == b

      d. ~     按位取反

      e. <<   左移  //    7<<n ,等同于 7 * 2的n次方。

      f. >>    右移  //    7>>n ,等同于 7 / 2的n次方。

 

 1 // 实例演示
 2 
 3     // 使用位异或运算符交换两个变量的值
 4     int a = 5;
 5     int b = 10;
 6 
 7     a = a ^ b;
 8     b = a ^ b;
 9     a = a ^ b;
10 
11     printf("a=%d, b=%d\n", a, b);

 

  9. sizeof

      sizeof 可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

 

 1 // 实例演示sizeof的3种形式
 2 
 3     // (1) sizeof( 变量\常量 )
 4     sizeof(5);
 5     char c = 'a';
 6     sizeof(c);
 7 
 8     // (2) sizeof  变量\常量
 9     sizeof 10;
10     char c = 'a';
11     sizeof c;
12 
13     // (3) ( 数据类型 )
14     sizeof(float);    // 其中的括号不能省略

 

posted @ 2015-03-04 15:02  zhamengjun  阅读(196)  评论(0)    收藏  举报