C语言4 运算符

简介: C语言4 运算符

1. 算术运算符

`+` (加法):将两个数相加。

`-` (减法):将第一个数减去第二个数。

`*` (乘法):将两个数相乘。

`/` (除法):将第一个数除以第二个数,注意在整型除法中结果也是整型(小数部分被舍弃)。

`%` (取模):返回两个数相除的余数,只能用于整数。

示例

int a = 10, b = 3;
int sum = a + b;      // sum = 13
int difference = a - b; // difference = 7
int product = a * b;    // product = 30
int quotient = a / b;   // quotient = 3
int remainder = a % b;  // remainder = 1


2. 关系运算符

`==` (等于):比较两个值是否相等。

`!=` (不等于):比较两个值是否不相等。

`>` (大于):检查第一个值是否大于第二个值。

`<` (小于):检查第一个值是否小于第二个值。

`>=` (大于等于):检查第一个值是否大于或等于第二个值。

`<=` (小于等于):检查第一个值是否小于或等于第二个值。

示例

int a = 10, b = 20;
int result;
 
result = (a == b);    // result = 0 (false)
result = (a != b);    // result = 1 (true)
result = (a > b);     // result = 0 (false)
result = (a < b);     // result = 1 (true)
result = (a >= b);    // result = 0 (false)
result = (a <= b);    // result = 1 (true)


3. 逻辑运算符

`&&` (逻辑与):如果两个操作数都为真,则条件为真。

`||` (逻辑或):如果两个操作数有一个为真,则条件为真。

`!` (逻辑非):反转操作数的逻辑状态。


示例

int a = 1, b = 0;
int result;
 
result = (a && b);    // result = 0 (false)
result = (a || b);    // result = 1 (true)
result = !a;          // result = 0 (false)


4. 位运算符

`&` (按位与):对两个数的每一位执行与操作。

`|` (按位或):对两个数的每一位执行或操作。

`^` (按位异或):对两个数的每一位执行异或操作。

`~` (按位取反):对数的每一位执行取反操作。

`<<` (左移):将一个数的所有位向左移动指定的位数。

`>>` (右移):将一个数的所有位向右移动指定的位数。

示例

int a = 5, b = 3;
int result;
 
result = a & b;   // result = 1 (0101 & 0011 = 0001)
result = a | b;   // result = 7 (0101 | 0011 = 0111)
result = a ^ b;   // result = 6 (0101 ^ 0011 = 0110)
result = ~a;      // result = -6 (~00000101 = 11111010)
result = a << 1;  // result = 10 (0101 << 1 = 1010)
result = a >> 1;  // result = 2 (0101 >> 1 = 0010)



5. 赋值运算符

`=` (赋值):将右边的值赋给左边的变量。

`+=` (加且赋值):将右边的值与左边的变量相加并赋值给左边的变量。

`-=` (减且赋值):将右边的值与左边的变量相减并赋值给左边的变量。

`*=` (乘且赋值):将右边的值与左边的变量相乘并赋值给左边的变量。

`/=` (除且赋值):将右边的值与左边的变量相除并赋值给左边的变量。

`%=` (取模且赋值):将右边的值与左边的变量取模并赋值给左边的变量。

示例

int a = 10;
a += 5;  // a = 15
a -= 3;  // a = 12
a *= 2;  // a = 24
a /= 4;  // a = 6
a %= 4;  // a = 2


6. 自增和自减运算符

`++` (自增):将操作数的值增加1。例如 `a++` 或 `++a`。

`--` (自减):将操作数的值减少1。例如 `a--` 或 `--a`。

示例

int a = 5;
a++;  // a 现在是 6
++a;  // a 现在是 7
a--;  // a 现在是 6
--a;  // a 现在是 5


7. 条件运算符(三元运算符)

`?:` (条件运算符):根据条件表达式的真假值来选择执行两个表达式之一。

示例

int a = 10, b = 20;
int result;
 
result = (a > b) ? a : b;  // result = 20


8. 逗号运算符

`,` (逗号运算符):按顺序执行一系列操作,并返回最后一个操作的值。

示例

int a = 1, b = 2, c;
c = (a += 1, b += 2, a + b);  // c = 6 (a=2, b=4)


9. sizeof 运算符

`sizeof`:返回变量或数据类型的大小(以字节为单位)。

示例

int a = 10;
printf("Size of a: %lu\n", sizeof(a));       // 输出变量 a 的大小
printf("Size of int: %lu\n", sizeof(int));   // 输出数据类型 int 的大小


10. 取地址和解引用运算符

`&` (取地址):返回变量的地址。

`*` (解引用):访问指针所指向的地址的值。

示例

int a = 10;
int *p;
p = &a;     // p 现在是变量 a 的地址
int b = *p; // b 现在是变量 a 的值,即 10


11.运算符的优先级

在C语言中,运算符的优先级决定了表达式中各个运算符操作的顺序。下面是常见运算符按优先级从高到低排列的列表:


1. 逗号运算符

2. 赋值运算符 (`=`, `+=`, `-=` 等)

3. 条件运算符 (`?:`)

4. 逻辑或运算符 (`||`)

5. 逻辑与运算符 (`&&`)

6. 按位或运算符 (`|`)

7. 按位异或运算符 (`^`)

8. 按位与运算符 (`&`)

9. 相等性和关系运算符 (`==`, `!=`, `<`, `>`, `<=`, `>=`)

10. 移位运算符 (`<<`, `>>`)

11. 加法和减法运算符 (`+`, `-`)

12. 乘法、除法和取模运算符 (`*`, `/`, `%`)

13. 一元运算符 (如 `++`, `--`, `!`, `~`, `+`, `-`)

14. 解引用和取地址运算符 (`*`, `&`)

15. sizeof运算符


优先级较高的运算符会先于优先级较低的运算符进行计算。在表达式中,可以使用圆括号 `()` 来改变运算符的计算顺序,圆括号中的表达式会先于外部的运算符进行计算。

例如,考虑以下表达式:

int a = 10, b = 5, c = 3;
int result = a + b * c;


根据运算符的优先级,乘法运算符 `*` 比加法运算符 `+` 的优先级高,因此先计算乘法,然后再进行加法运算。如果想先计算加法,可以使用圆括号来改变优先级:

int result = (a + b) * c;


这样就会先计算加法,然后再乘以 `c`。理解和正确利用运算符的优先级是编写正确和高效C语言程序的重要基础之一。

目录
相关文章
|
6天前
|
C语言
c语言运算符
C的运算符有以下几种: 算术运算符:+、-、*、/、% 结合方向自左向右 关系运算符:>、<、==、>=、<=、!= 逻辑运算符:!、&&、|| 位运算符<<、>>、~、|、^、& 赋值运算符:=及符号扩展赋值运算符(+=、-=、*=、/=) 条件运算符:? : 逗号运算符:, 指针运算符:*、& 求字节运算符:sizeof 强制类型转换运算符:((类型)) 分量运算符:.、-> 下标运算符:[]
14 4
|
3月前
|
存储 C语言
C语言数据类型、变量和运算符以及printf相关问题
C语言数据类型、变量和运算符以及printf相关问题
|
2月前
|
C语言
C语言判断和运算符联系
在 C 语言中,判断与运算符紧密相关,主要体现在条件表达式的使用上。
194 87
|
2月前
|
安全 C语言
C语言运算符的使用注意点
在C语言中,正确使用运算符能提升代码的可读性和效率。本文介绍了八大注意事项:运算符优先级和结合性影响运算顺序;自增/自减运算符分前缀和后缀形式;逻辑运算符有短路特性;位运算符直接操作二进制位需谨慎;条件运算符简洁但避免复杂嵌套;类型转换避免意外结果;使用括号明确运算顺序。掌握这些要点有助于编写更安全高效的代码。
188 72
|
1月前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
39 3
|
1月前
|
C语言
C语言条件运算符详解
C语言条件运算符,也称为三元运算符,是一种简化if-else语句的表达式,形式为:条件?表达式1:表达式2。当条件为真时,计算并返回表达式1的值;否则计算并返回表达式2的值。它可用于快速实现简单的条件分支逻辑。
|
2月前
|
安全 C语言
在C语言中,正确使用运算符能提升代码的可读性和效率
在C语言中,运算符的使用需要注意优先级、结合性、自增自减的形式、逻辑运算的短路特性、位运算的类型、条件运算的可读性、类型转换以及使用括号来明确运算顺序。掌握这些注意事项可以帮助编写出更安全和高效的代码。
49 4
|
2月前
|
程序员 C语言
【C语言基础考研向】06运算符与表达式
本文介绍了C语言中的运算符分类、算术运算符及表达式、关系运算符与表达式以及运算符优先级等内容。首先概述了13种运算符类型,接着详细说明了算术运算符的优先级与使用规则,以及关系运算符和表达式的真假值表示,并给出了C语言运算符优先级表。最后附有课后习题帮助巩固理解。
104 10
|
6月前
|
C语言
C语言中的条件运算符和条件表达式详解
C语言中的条件运算符和条件表达式详解
581 0
|
2月前
|
存储 编译器 C语言
【C语言基础考研向】07逻辑运算符与赋值运算符
本文介绍了C语言中的逻辑运算符与逻辑表达式、赋值运算符以及求字节运算符`sizeof`。逻辑运算符包括`!`(逻辑非)、`&&`(逻辑与)和`||`(逻辑或),其优先级规则与数学运算符类似。通过示例展示了如何用这些运算符判断闰年及逻辑非的运算方向。此外,文章还解释了左值与右值的概念及其在赋值运算中的应用,并介绍了复合赋值运算符的使用方法,如加后赋值`+=`和乘后赋值`*=`。最后,通过`sizeof`运算符示例展示了如何获取变量的字节大小。