7、运算符

运算符

1. 算术运算符

算术运算符用于执行数学运算,包括加法、减法、乘法、除法和取模运算。

运算符描述
+加法
-减法
*乘法
/除法
%取模
#include <stdio.h>

int main() {
    int a = 10, b = 3;
    printf("a + b = %d\n", a + b); // 加法
    printf("a - b = %d\n", a - b); // 减法
    printf("a * b = %d\n", a * b); // 乘法
    printf("a / b = %d\n", a / b); // 除法
    printf("a %% b = %d\n", a % b); // 取模

    return 0;
}

// 输出结果:
// a + b = 13
// a - b = 7
// a * b = 30
// a / b = 3
// a % b = 1

2. 逻辑运算符

逻辑运算符用于执行逻辑操作,返回布尔值(真或假)。

运算符描述
&&逻辑与
II逻辑或
!逻辑非
#include <stdio.h>

int main() {
    int a = 1, b = 0;
    printf("a && b = %d\n", a && b); // 逻辑与
    printf("a || b = %d\n", a || b); // 逻辑或
    printf("!a = %d\n", !a);         // 逻辑非

    return 0;
}

// 输出结果:
// a && b = 0
// a || b = 1
// !a = 0

3. 位运算符

位运算符用于对位进行操作。

运算符描述
&按位与
I按位或
^按位异或
~按位取反
<<左移
>>右移
#include <stdio.h>

int main() {
    int a = 5;  // 二进制 0101
    int b = 3;  // 二进制 0011

    printf("a & b = %d\n", a & b); // 按位与
    printf("a | b = %d\n", a | b); // 按位或
    printf("a ^ b = %d\n", a ^ b); // 按位异或
    printf("~a = %d\n", ~a);       // 按位取反
    printf("a << 1 = %d\n", a << 1); // 左移
    printf("a >> 1 = %d\n", a >> 1); // 右移

    return 0;
}

// 输出结果:
// a & b = 1
// a | b = 7
// a ^ b = 6
// ~a = -6
// a << 1 = 10
// a >> 1 = 2

4. 赋值运算符

赋值运算符用于将值赋给变量。

运算符描述
=赋值
+=加并赋值
-=减并赋值
*=乘并赋值
/=除并赋值
%=取模并赋值
&=按位与并赋值
|=按位或并赋值
^=按位异或并赋值
<<=左移并赋值
>>=右移并赋值
#include <stdio.h>

int main() {
    int a = 10;
    a += 5; // a = a + 5
    printf("a += 5 -> a = %d\n", a);

    a -= 3; // a = a - 3
    printf("a -= 3 -> a = %d\n", a);

    a *= 2; // a = a * 2
    printf("a *= 2 -> a = %d\n", a);

    a /= 4; // a = a / 4
    printf("a /= 4 -> a = %d\n", a);

    a %= 3; // a = a % 3
    printf("a %%= 3 -> a = %d\n", a);

    a &= 6; // a = a & 6
    printf("a &= 6 -> a = %d\n", a);

    a |= 2; // a = a | 2
    printf("a |= 2 -> a = %d\n", a);

    a ^= 4; // a = a ^ 4
    printf("a ^= 4 -> a = %d\n", a);

    a <<= 1; // a = a << 1
    printf("a <<= 1 -> a = %d\n", a);

    a >>= 1; // a = a >> 1
    printf("a >>= 1 -> a = %d\n", a);

    return 0;
}

// 输出结果:
// a += 5 -> a = 15
// a -= 3 -> a = 12
// a *= 2 -> a = 24
// a /= 4 -> a = 6
// a %= 3 -> a = 0
// a &= 6 -> a = 0
// a |= 2 -> a = 2
// a ^= 4 -> a = 6
// a <<= 1 -> a = 12
// a >>= 1 -> a = 6

5. 内存访问运算符

内存访问运算符用于访问变量的地址或通过指针访问变量的值。

运算符描述
&取地址
*通过指针访问值
#include <stdio.h>

int main() {
    int a = 10;
    int *p = &a; // 取地址,将 a 的地址赋给指针 p

    printf("a 的地址:%p\n", (void*)&a);
    printf("p 的值(a 的地址):%p\n", (void*)p);
    printf("通过指针 p 访问 a 的值:%d\n", *p); // 通过指针访问值

    *p = 20; // 通过指针修改 a 的值
    printf("修改后 a 的值:%d\n", a);

    return 0;
}

// 输出结果:
// a 的地址:0x7ffee8b1b68c
// p 的值(a 的地址):0x7ffee8b1b68c
// 通过指针 p 访问 a 的值:10
// 修改后 a 的值:20

总结

  • 算术运算符:执行基本的数学运算(加、减、乘、除、取模)。
  • 逻辑运算符:执行逻辑操作,返回布尔值。
  • 位运算符:对位进行操作,包括与、或、异或、取反、左移和右移。
  • 赋值运算符:将值赋给变量,并支持复合赋值运算。
  • 内存访问运算符:用于访问变量的地址或通过指针访问变量的值。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值