"C语言程序设计:现代方法_附录B_C语言运算符"
在C语言中,运算符是编程中的重要组成部分,它们用于执行特定的计算或操作。本附录详细列出了C语言中的运算符及其优先级和结合性。优先级决定了运算的顺序,而结合性则决定了当多个相同优先级的运算符出现在一起时如何处理。
1. 数组下标运算符 `[]`:用于访问数组中的元素,如 `arr[i]`,是从左到右结合的。
2. 函数调用运算符 `()`:用于调用函数并传递参数,例如 `func(args)`,也是左结合的。
3. 结构和联合成员访问运算符 `.->`:分别用于访问结构体成员和指针指向的结构体成员,如 `structVar.member` 和 `ptr->member`。
4. 自增和自减运算符(后缀)`++` 和 `--`:对变量增加或减少1,后缀运算符先使用变量值再改变,左结合。
5. 前缀自增和自减运算符 `++` 和 `--`:与后缀运算符相反,先改变变量值再使用,右结合。
6. 取地址运算符 `&`:获取变量的内存地址,右结合。
7. 间接寻址运算符 `*`:用于访问指针所指向的变量,右结合。
8. 一元正号 `+` 和一元负号 `-`:对数值进行正负取值,右结合。
9. 按位求反运算符 `~`:按二进制位取反,右结合。
10. 逻辑非运算符 `!`:对逻辑值取反,右结合。
11. `sizeof` 运算符:计算表达式或类型的大小,右结合。
12. 强制类型转换运算符 `(type)`:将一个表达式转换为指定类型,右结合。
13. 乘法、除法和取模运算符 `*`, `/`, `%`:执行乘法、除法和求余操作,左结合。
14. 加法和减法运算符 `+`, `-`:执行加法和减法,左结合。
15. 按位移位运算符 `<<`, `>>`:进行二进制位的左移和右移,左结合。
16. 关系运算符 `<`, `>`, `<=`, `>=`:比较操作,左结合。
17. 判等运算符 `==`, `!=`:判断两个值是否相等或不等,左结合。
18. 按位与运算符 `&`:执行按位与操作,左结合。
19. 按位异或运算符 `^`:执行按位异或操作,左结合。
20. 按位或运算符 `|`:执行按位或操作,左结合。
21. 逻辑与运算符 `&&`:短路逻辑与,左结合,只在必要时计算第二个操作数。
22. 逻辑或运算符 `||`:短路逻辑或,左结合,只在必要时计算第二个操作数。
23. 条件运算符 `?:`:三元运算符,根据条件选择执行其中一个表达式,右结合。
24. 赋值运算符 `=`, `+=`, `-=`, `*=`等:进行赋值操作,右结合。
25. 逗号运算符 `,`:执行从左到右的运算,结果为最后一个表达式的值,左结合。
理解这些运算符及其优先级和结合性对于编写高效、准确的C语言代码至关重要。正确地使用它们可以避免不必要的括号,使代码更清晰,同时也能够有效地控制计算的顺序。在编写程序时,应根据需要合理运用运算符,确保程序的逻辑正确无误。