趣味C语言小白速通 - 运算符和表达式2

趣味C语言小白速通 - 运算符和表达式2

前言

在C语言中,运算符和表达式是编程的基础。了解这些基本的运算符及其使用方式,对于写出高效的代码至关重要。今天,我们将探讨几种重要的运算符:算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符、位操作运算符以及指针运算符。

1. 算术运算符和算术表达式

算术运算符用于进行基本的数学运算。C语言中的算术运算符包括:

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • %:取模(余数)

简答的算术表达式例如数学当中的四则运算。

表达式示例:

int a = 10, b = 5;
int sum = a + b;    // sum = 15
int diff = a - b;   // diff = 5
int prod = a * b;   // prod = 50
int quot = a / b;   // quot = 2
int rem = a % b;    // rem = 0
需要说明的是%运算符两侧必须是整数

算术运算符的优先级和结合性
在复杂的算术运算符中,应该注意表达式的结合性和优先级,先计算高优先级的,同等优先级从左往右计算。“( )”的优先级最高,其次是 ‘*’ 、‘/’ 和‘%’, 最后是‘+’和‘-’。

2. 关系运算符和关系表达式

关系运算符用于比较两个值,结果为布尔值(真或假)。常用的关系运算符有:

  • ==:等于
  • !=:不等于
  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于
    关系运算符都是双目运算符,用关系运算符连接两个C语言表达式得到就是关系表达式
    表达式示例:
int x = 10, y = 20;
int result1 = (x == y);  // result1 = 0 (假)
int result2 = (x < y);   // result2 = 1 (真)
int result3 = (x+y) < (x-y);   // result3 = 0 (假)

关系表达式的优先级和结合律
关系运算符中> < >= <= 优先级一致且高于== !=

3. 逻辑运算符和逻辑表达式

逻辑运算符用于处理布尔逻辑值。主要运算符包括:

  • &&:逻辑与(AND)
  • ||:逻辑或(OR)
  • !:逻辑非(NOT)

表达式示例:

int a = 1, b = 0;
int result1 = (a && b); // result1 = 0 (假)
int result2 = (a || b); // result2 = 1 (真)
int result3 = !a;      // result3 = 0 (假)

逻辑达式的优先级和结合律
逻辑运算符!优先级最高,其次是&&,||最低,同等优先级依旧从左往右运算

4. 条件运算符和条件表达式

条件运算符(或三元运算符)用于简化简单的条件判断。语法为 条件 ? 真值 : 假值

表达式示例:

int age = 18;
char *status = (age >= 18) ? "成人" : "未成年";

5. 赋值运算符和赋值表达式

赋值运算符用于将值赋给变量。常见的赋值运算符包括:

  • =:基本赋值
  • +=:加法赋值
  • -=:减法赋值
  • *=:乘法赋值
  • /=:除法赋值
  • %=:取模赋值

表达式示例:

int a = 10;
a += 5;  // a = 15
a *= 2;  // a = 30

6. 位操作运算符和位操作表达式

位操作运算符用于操作整数的位。常用的位操作运算符有:

  • &:按位与
  • |:按位或
  • ^:按位异或
  • ~:按位取反
  • <<:左移
  • >>:右移

表达式示例:

int a = 5;    // 二进制: 00000101
int b = 3;    // 二进制: 00000011
int c = a & b; // c = 1 (00000001)
int d = a | b; // d = 7 (00000111)
int e = a << 1; // e = 10 (00001010)

7. 指针运算符

指针运算符用于处理内存地址。主要运算符包括:

  • *:解引用运算符(获取指针所指向的值)
  • &:地址运算符(获取变量的地址)

示例:

int x = 10;
int *p = &x; // p 存储 x 的地址
int y = *p;  // y = 10 (解引用 p)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值