关于C语言操作符的那些事(超级全)
前言
C语言中操作符是非常重要的一部分,了解操作符的含义和使用方法可以帮助我们更好地理解和编写C语言程序。本文将介绍常见的C语言操作符,分为算术操作符、关系操作符、逻辑操作符、位操作符、赋值操作符、条件操作符和其他操作符七类。
算术操作符
算术操作符用于执行算术计算,包括加、减、乘、除、取模等。
- 加号
+
:用于加法运算 - 减号
-
:用于减法运算 - 乘号
*
:用于乘法运算 - 除号
/
:用于除法运算 - 取模
%
:用于求余数
C语言中的算术运算符具有优先级,可以使用圆括号改变优先级,例如:
int a = 2, b = 3, c = 4;
int res = (a + b) * c / 2; // res的结果为10
关系操作符
关系操作符用于比较两个值的大小关系,返回布尔值(0或1)。
- 相等
==
:用于比较两个值是否相等 - 不等
!=
:用于比较两个值是否不相等 - 大于
>
:用于比较左侧的值是否大于右侧的值 - 小于
<
:用于比较左侧的值是否小于右侧的值 - 大于等于
>=
:用于比较左侧的值是否大于等于右侧的值 - 小于等于
<=
:用于比较左侧的值是否小于等于右侧的值
例如:
int a = 2, b = 3;
int res = (a > b); // res的结果为0
逻辑操作符
逻辑操作符用于连接两个布尔表达式,返回布尔值。
- 与
&&
:当左右两个表达式都为真(非0)时返回1,否则返回0 - 或
||
:当左右两个表达式有一个为真(非0)时返回1,否则返回0 - 非
!
:用于取反,当表达式为真时取反为假,为假时取反为真
例如:
int a = 2, b = 3;
int res = (a > 1 && b > 1); // res的结果为1
位操作符
位操作符用于操作二进制数的每一位。
- 按位与
&
:当两个二进制位都为1时返回1,否则返回0 - 按位或
|
:当两个二进制位有一个为1时返回1,否则返回0 - 按位异或
^
:当两个二进制位不同时返回1,否则返回0 - 按位取反
~
:对每一个二进制位取反,0变为1,1变为0 - 左移
<<
:将左侧操作数的二进制数向左移动(低位补0),右侧操作数指定移动的位置 - 右移
>>
:将左侧操作数的二进制数向右移动(高位补0或1),右侧操作数指定移动的位置
例如:
unsigned int a = 0x18, b = 0x0F;
unsigned int res = a & b; // res的结果为0x08
赋值操作符
赋值操作符用于将右侧的值赋给左侧的变量或内存单元。
=
:将右侧的值赋给左侧的变量或内存单元+=
:将左侧的值加上右侧的值并赋给左侧的变量或内存单元-=
:将左侧的值减去右侧的值并赋给左侧的变量或内存单元*=
:将左侧的值乘上右侧的值并赋给左侧的变量或内存单元/=
:将左侧的值除以右侧的值并赋给左侧的变量或内存单元%=
:将左侧的值取模右侧的值并赋给左侧的变量或内存单元<<=
:将左侧的值左移右侧的位数并赋给左侧的变量或内存单元>>=
:将左侧的值右移右侧的位数并赋给左侧的变量或内存单元&=
:将左侧的值按位与右侧的值并赋给左侧的变量或内存单元|=
:将左侧的值按位或右侧的值并赋给左侧的变量或内存单元^=
:将左侧的值按位异或右侧的值并赋给左侧的变量或内存单元
例如:
int a = 2, b = 3;
a += b; // a的值为5
条件操作符
条件操作符用于根据条件选择不同的操作,也叫三目操作符。
expr1 ? expr2 : expr3
:如果expr1
为真(非0),返回expr2
的值,否则返回expr3
的值
例如:
int a = 2, b = 3;
int res = (a > b) ? a : b; // res的值为3
其他操作符
除了以上的操作符,C语言还有其他一些常用的操作符。
&
:取变量的地址*
:从地址中取出值,或者用来定义指针变量sizeof
:返回变量或类型的字节数++
:自增,可以在前后两种位置使用--
:自减,可以在前后两种位置使用
例如:
int a = 2;
int *p = &a; // 定义指向a的指针
int res = ++(*p); // res的值为3,a的值也为3
总结
以上就是C语言操作符的主要内容,操作符在C语言编程中占据着重要位置,掌握对应的操作符可以帮助我们更好地编写高效、简洁、清晰的代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于C语言操作符的那些事(超级全) - Python技术站