抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

算数运算符

  1. 加减乘除 + - * /

    1
    2
    3
    4
    int sum = a + b;
    int sum = a - b;
    int sum = a * b;
    int sum = a / b; // int除法默认向下取整
  2. 取模运算 %

    1
    int p = a % b;

    理解为做除法得到的余数,例如7 / 2 = 3……1,1 = 7 % 2

赋值运算符

  1. 直接赋值 =

    1
    int a = 1;

    令a的值为1

  2. 复合赋值 += -= *= /=

    1
    2
    3
    4
    x += 3;  // 等价于 x = x + 3
    x -= 2; // 等价于 x = x - 2
    x *= 4; // 等价于 x = x * 4
    x /= 2; // 等价于 x = x / 2

比较运算符

== != > < >= <=

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
等于 (==):判断两个值是否相等。
if (a == b) { /* ... */ }

不等于 (!=):判断两个值是否不相等。
if (a != b) { /* ... */ }

大于 (>):判断左侧值是否大于右侧值。
if (a > b) { /* ... */ }

小于 (<):判断左侧值是否小于右侧值。
if (a < b) { /* ... */ }

大于等于 (>=) 和 小于等于 (<=):
if (a >= b) { /* ... */ }
if (a <= b) { /* ... */ }

逻辑运算符

&& || !

1
2
3
4
5
6
7
8
与 (&&):当且仅当两个操作数都为真时,结果为真。
if (a > 0 && b > 0) { /* ... */ }

或 (||):只要有一个操作数为真,结果就为真。
if (a > 0 || b > 0) { /* ... */ }

非 (!):取反操作符,返回布尔值的相反值。
if (!isValid) { /* ... */ }

位运算符

  1. 按位与&
    对两个数在二进制下进行与运算,只有对应位都为1时结果才为1
    1
    2
    3
    int a = 13;  // 二进制:1101
    int b = 11; // 二进制:1011
    int result = a & b; // result 为 9,二进制:1001
  2. 按位或|
    对两个数在二进制下进行或运算,只要对应位与自身有一个为1,结果就为1
    1
    2
    3
    int a = 5;  // 二进制:0101
    int b = 3; // 二进制:0011
    int result = a | b; // result 为 7,二进制:0111
  3. 按位异或^
    对两个数在二进制下进行异或运算,当对应位不同时(一个为1一个为0)结果为1
    1
    2
    3
    int a = 5;  // 二进制:0101
    int b = 3; // 二进制:0011
    int result = a ^ b; // result 为 6,二进制:0110
  4. 左移<<
    将一个数的二进制数向左移动指定的位数,右侧补0
    1
    2
    int a = 5; //二进制:0101
    int result = a << 1; // result 为 10,二进制:1010,相当于 a * 2
  5. 右移>>
    将一个数的二进制数向右移动指定的位数,右侧补0
    1
    2
    int a = 5; //二进制:0101
    int result = a >> 1; // result 为 2,二进制:0010,相当于 a / 2 (向下取整)

三目运算符

?: 根据条件不同返回不同的值

1
2
int result = (a > b) ? a : b;  // 如果 a 大于 b,则 result 为 a,否则为 b
?前为一个布尔型变量进行真假判断,为真返回:前面的值,为假返回:后面的值

指针运算符

  1. 地址运算符 &
    获取变量的地址
    1
    2
    int x = 10;
    int* ptr = &x; // ptr 指向 x 的地址
  2. 解引用运算符*
    访问指针所指向的变量的值
    1
    2
    3
    4
    int x = 10;
    int* ptr = &x; // ptr 指向 x
    int value = *ptr; // value 为 10,解引用 ptr 获取 x 的值
    *ptr = 20; // 将 x 的值改为 20
  3. 指针的自加或自减++ --
    1
    2
    3
    4
    int arr[] = {1, 2, 3, 4};
    int* ptr = arr; // ptr 指向数组的首元素
    ptr++; // 现在 ptr 指向 arr[1]
    int second = *ptr; // second 为 2

其他运算符

  1. 自增++
    将变量加1

    1
    2
    x++;  // 后缀自增
    ++x; // 前缀自增

    这里我们这样理解,一个是执行完之后自增,一个是先自增再执行

    1
    2
    3
    4
    int a = 5;
    int b = a++; //b = 5,a = 6;
    int a = 5;
    int b = ++a; //b = 6,a = 6;

    所以我们定义一个cnt记录数组长度时,经常这样,cnt即为数组长度

    1
    2
    int cnt = 0;
    a[++cnt] = number;

    当然你也可以这样,前后同一索引代表的元素一样,不过这里cnt-1为数组长度

    1
    2
    int cnt = 1;
    a[cnt++] = number;
  2. 自减少--

    1
    2
    x--;  // 后缀自减
    --x; // 前缀自减

评论