• 运算符的介绍及使用(篇二)


    1. sizeof 运算符
      基本类型所占内存大小:(Byte 字节)
      1 Byte(字节) = 8 Bit(位)

      sizeof(char) = 1 Byte
      sizeof(short) = 2 Byte
      sizeof(int) = 4 Byte
      sizeof(long) = 8 Byte //32 Bit OS 下大小为 4 Byte
      sizeof(float) = 4 Byte
      sizeof(double) = 8 Byte

      sizeof 是运算符,不是函数

      char cNum = ‘3’;
      //以下两种写法均为正确写法
      printf(“sizeof cNum = %ld ”, sizeof cNum);
      printf(“sizeof(cNum)= %ld ”, sizeof(cNum));

      sizeof int

    2. 类型转换
      int a = 3.98; //隐式类型转化
      printf(“a = %d ”, a); //a = ??

      a. 隐式类型转换
      当赋值号两侧数据类型不一致时,默认将右侧数据转化为左侧类型;
      b. 显示类型转换(强制类型转换)
      在需要转换的数据之气,加上需要转化的数据类型
      int a = (int)3.45679;

      float fNum = 3.1415926f;
      int iNum = (int)fNum;

      问:
      fNum = 3.141593
      iNum = 3

      强制类型转化并不改变变量的原有数据类型,只是做一次临时转化!!!

      转化顺序:有低精度向高精度转化
      char/short —> int —> long —> flaot —> double

    3. 算术运算符
      加(+)减(-)乘(*)除(/)
      取余运算(求模运算 %)
      m%n: m 对 n 求余

      整数相除结果仍为整数!
      % 运算的两个操作数必须为整数!!!

      3 % 2 = ?

      自增/自减运算符:
      ++ –
      int i = 3;

      i++:先取值,后自增
      int num = i++;

      num = i; //3
      i = i + 1; //4

      ++i:先自增,后取值
      int ret = ++i;

      i = i + 1; //4
      ret = i; //4

      i–:先取值,后自减
      int num = i–;

      num = i;
      i = i - 1;

      –i:先自减,后取值
      int ret = --i;

      i = i - 1;
      ret = i;

    4. 关系运算符
      大于(>) 大于等于(>=)
      小于 (<) 小于等于(<=)
      等于(==) 不等于(!=)

      运算结果:为真(1,true)或者为假(0,false)

      使用形式:
      表达式1 关系运算符 表达式2;
      若成立,则结果为 1,否则为 0

      int a = 12;
      int b = 10;
      int c = 55;

      int ret1 = 15 > a > 5;
      int ret2 = a < b < c;

      (1) 合法与否?
      合法表达式
      (2) 若合法,结果为多少?
      ret1 = 0;
      ret2 = 1;
      不合法,说明原因? (不考虑)
      (3) 考虑 a 的值是否会影响 ret1 的值???
      不管 a 的值是多少,其最终结果都为 0
      15 > a 其结果不是为 1,就是为 0
      不管是 1 还是 0 ,均小于 5

    5. 逻辑运算符
      逻辑与:&&
      使用形式:
      表达式1 && 表达式2;

      表达式1 和 表达式2 均为真,则整体结果为真,否则为假;
      即 && 两侧的表达式同时成立,则整体表达式才为真(1)

      逻辑或:||
      使用形式:
      表达式1 || 表达式2;

      表达式1 或者 表达式2 成立,则整体表达式成立
      即表达式1 和 表达式2 都不成立,整体结果才为 假(0)

      逻辑非:!
      !表达式;

      表达式为真,则结果为假,
      表达式为假,则结果为真。

    6. 条件运算符
      三目运算符 ?:

      使用形式:
      表达式1 ? 表达式2 : 表达式3;

      若表达式1 成立,则计算表达式2 的值,作为结果
      若表达式1 不成立,则计算表达式3 的值,作为结果

      a > b ? 1 : 0;

      思考:
      任意输入两个数,如何获取两数中的最大值??

      int max = (a > b ? a : b);

    7. 逗号运算符
      ,

      12,23,34,45

      逗号表达式,取最后一个表达式或者值,作为最终结果

      int a = 2;
      int b = 4;

      int ret = (a + 2, a++, b + 2, a + b);
      ret = 7

    8. 位运算符
      只针对于整数或字符型数据

      与:&
      对应位都为1 则结果为 1,否则为 0
      任何数与 0 相与,结果仍然为 0

      3 & 4 = 0
      0011
      &0100
      ---------
      0000

      12 & 7 = 4
      1100
      &0111
      -------
      0100
      或:|
      对应位只要有 1,则结果为 1,否则为 0

      4 | 3 = 7
      0100
      |0011
      ------
      0111

      13 | 9 = 13
      1101
      |1001
      -------
      1101

      任何数与 1 相或,结果仍为 1

      取反:~
      对应位若为 1, 则结果为 0,
      对应为若为 0, 则结果为 1

      原码:
      补码:
      反码:

      异或:^
      左移:<<
      右移:>>

    千里之行,始于足下!
  • 相关阅读:
    oracle 数据库服务名怎么查
    vmware vsphere 6.5
    vSphere虚拟化之ESXi的安装及部署
    ArcMap中无法添加ArcGIS Online底图的诊断方法
    ArcGIS中字段计算器(高级计算VBScript、Python)
    Bad habits : Putting NOLOCK everywhere
    Understanding the Impact of NOLOCK and WITH NOLOCK Table Hints in SQL Server
    with(nolock) or (nolock)
    What is “with (nolock)” in SQL Server?
    Changing SQL Server Collation After Installation
  • 原文地址:https://www.cnblogs.com/MINAIot/p/13041019.html
Copyright © 2020-2023  润新知