zoukankan      html  css  js  c++  java
  • C语言运算符

    一、C语言的运算符

    C语言有六种运算符,如下:

    1)算术运算符;

    2)赋值运算符;

    3)sizeof运算符;

    4)关系运算符;

    5)逻辑运算符;

    6)位运算符。

    本章将只介绍算术运算符、赋值运算符和sizeof运算符,关系运算符和逻辑运算符放在其它章节中介绍,位运算符极少使用,了解即可,不深入学习。

    二、算术运算符

    下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 18,变量 B 的值为5,则:

    运算符 描述 实例
    + 两个数相加 A+B 将得到 23
    - 一个数减另一个数 A-B 将得到 13
    * 两个数相乘 A*B 将得到 90
    / 分子除以分母 A/B 将得到 3.6
    % 余数运算符,整除后的余数 B%A 将得到 3
    ++ 自增运算符,整数值增加 1 A++ 将得到 19
    -- 自减运算符,整数值减少 1 A-- 将得到 17

    示例(book15.c)

    /*
     *  程序名:book15.c,此程序演示算术运算符的使用。
     *  作者:C语言技术网(www.freecplus.net) 日期:20190525
    */
    #include <stdio.h>
    
    int main()
    {
      double    A=18;      // 定义变量A,赋值18
      double    B=5;       // 定义变量B,赋值5
    
      printf("A的值是:%lf
    ",A);
      printf("B的值是:%lf
    ",B);
    
      printf("A+B的值是:%lf
    ",A+B);
      printf("A-B的值是:%lf
    ",A-B);
      printf("A*B的值是:%lf
    ",A*B);
      printf("A/B的值是:%lf
    ",A/B);
    
      //printf("A除B的余数是:%lf
    ",A%B);
    
      A++;  // 自增1
      printf("A自增后的值是:%lf
    ",A);
    
      B--;  // 自减1
      printf("B自减后的值是:%lf
    ",B);
    
      return 0;
    }
    

    运行效果

    在这里插入图片描述
    变量的自增或自减有两种写法:

    变量名++; // 表示在本次使用变量后再自增;

    ++变量名; // 表示在本次使用变量前自增;

    变量名--; // 表示在本次使用变量后再自增;

    --变量名; // 表示在本次使用变量前自减;

    示例(book16.c)

    /*
     *  程序名:book16.c,此程序演示算术运算符++和--的使用。
     *  作者:C语言技术网(www.freecplus.net) 日期:20190525
    */
    #include <stdio.h>
    
    int main()
    {
      int    ii=0;      // 定义变量ii并初始化
    
      ii=10;
      printf("ii++的值是:%d
    ",ii++);  // 在使用后自增
      printf("ii的值是:%d
    ",ii);
    
      ii=10;
      printf("++ii的值是:%d
    ",++ii);  // 在使用前自增
      printf("ii的值是:%d
    ",ii);
    
      return 0;
    } 
    

    运行效果

    在这里插入图片描述

    三、赋值运算符

    下表列出了 C 语言支持的赋值运算符:

    运算符 描述 实例
    = 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
    += 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
    -= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
    *= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
    /= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
    %= 求余数且赋值运算符,求两个操作数的模赋值给左边操作数,浮点数不适用取余数。 C %= A 相当于 C = C % A

    赋值运算符支持的是C语言的基本数据类型,包括char、int和double,字符串(字符数组)不能使用赋值运算符。

    示例(book17.c)

    /*
     *  程序名:book17.c,此程序演示赋值运算符的使用。
     *  作者:C语言技术网(www.freecplus.net) 日期:20190525
    */
    #include <stdio.h>
    
    int main()
    {
      int    C=0;     // 定义变量C并初始化
      int    A=21;    // 定义变量A并初始化
    
      C=A;
      printf("运算符  = 演示,C的值 = %d
    ",C);
    
      C+=A;  // C=C+A;
      printf("运算符 += 演示,C的值 = %d
    ",C);
    
      C-=A;  // C=C-A;
      printf("运算符 -= 演示,C的值 = %d
    ",C);
    
      C*=A;  // C=C*A;
      printf("运算符 *= 演示,C的值 = %d
    ",C);
    
      C/=A;  // C=C/A;
      printf("运算符 /= 演示,C的值 = %d
    ",C);
    
      C=200;
      C%=A;  // C=C%A;
      printf("运算符 %= 演示,C的值 = %d
    ",C);
    
      return 0;
    }
    

    运行效果

    在这里插入图片描述

    四、sizeof运算符

    sizeof是C语言的关键字,它用来计算变量(或数据类型)在当前系统中占用内存的字节数。

    sizeof不是函数,产生这样的疑问是因为sizeof的书写确实有点像函数,sizeof有两种写法:

    用于数据类型

    sizeof(数据类型);
    

    数据类型必须用括号括住。 

    printf("字符型变量占用的内存是=%d
    ",sizeof(char));   // 输出:字符型变量占用的内存是=1
    printf("整型变量占用的内存是=%d
    ",sizeof(int));   // 输出:整型变量占用的内存是=4
    

    用于变量

    sizeof(变量名);
    sizeof 变量名;
    

    变量名可以不用括号括住,带括号的用法更普遍,大多数程序员采用这种形式。 

    int ii;
    printf("ii占用的内存是=%d
    ",sizeof(ii));   // 输出:ii占用的内存是=4
    printf("ii占用的内存是=%d
    ",sizeof ii);   // 输出:ii占用的内存是=4
    

    五、运算符的优先级

    在+-*/四则运算符中,*/的优先级高于+-,在C语言中,其它的运算符都有优先级,我不想介绍它们的优先级,我写了二十年的程序,也记不住各种运算符的优先级的关系。

    我不建议程序员记住各种运算符的优先级,而是用括号解决全部的问题,括号的优先级是最高的,括号中的表达式会优先执行,这样各个运算符的执行顺序就一目了然了。

    int d = a + (b * c);
    

    六、版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
    来源:C语言技术网(www.freecplus.net)
    作者:码农有道

    如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!

  • 相关阅读:
    PDF文件中的Form保存问题
    Understanding IP Fragmentation
    tcp ip guide IPsec IKE
    Windows安全事件日志中的事件编号与描述
    Cisco PIX fix up and Juniper firewall FTP ALG
    很好的IPSec介绍,详细解释了IKE协商的2个阶段的作用
    virtualbox 下运行Ubuntu 8.10的分辨率和guest additions的问题。
    Fixing the ‘Do you want to display nonsecure items’ message
    windows xp 开始菜单里面所有项目右键不起作用。
    HP backup and recovery manager
  • 原文地址:https://www.cnblogs.com/wucongzhou/p/12499338.html
Copyright © 2011-2022 走看看