趣味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)