C 运算符
预计时间: 3分钟
在C语言中,运算符是告诉编译器执行特定数学或逻辑函数的符号。
C 支持一组丰富的运算符,它们是在表达式中使用的符号,用于指定在评估该表达式时要执行的操作。C 有以下运算符:
C算术运算符
算术运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模 |
++ | 自增 |
-- | 自减 |
C关系运算符
关系运算符 | 描述 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
C逻辑运算符
逻辑运算符 | 描述 |
---|---|
&& | 逻辑与 |
|| | 逻辑或 |
! | 逻辑非 |
? : | 三元运算符 |
C按位运算符
按位运算符 | 描述 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
~ | 按位取反 |
<< | 按位左移 |
>> | 按位右移 |
C赋值运算符
赋值运算符 | 描述 |
---|---|
= | 赋值 |
+= | 加后赋值 |
-= | 减后赋值 |
*= | 乘后赋值 |
/= | 除后赋值 |
%= | 取模后赋值 |
<<= | 按位左移后赋值 |
>>= | 按位右移后赋值 |
&= | 按位与后赋值 |
^= | 按位异或后赋值 |
|= | 按位或后赋值 |
C语言赋值语句一般形式是
变量名 = 表达式;
赋值中的类型转换
混用不同类型的变量时,发生类型转换。 在一个赋值语句中,类型转换的规则是:赋值语句的右部的类型转换成左部的类型。
多重赋值
允许多变量赋同一个值。
x=y=z=0;
C数据运算符
数据运算符 | 描述 |
---|---|
sizeof() | 获取......的大小 |
[] | 数据下标 |
& | ......的地址 |
* | ......的值 |
-> | 结构体解引用 |
. | 结构体引用 |
sizeof是编译时一元操作符,返回其操作数(变量、类型)对应数据类型的字节数。
C其它运算符
杂项 | 描述 |
---|---|
, | 逗号 |
() | 圆括号,小括号,调用函数,子表达式分组等等 |
(typename) | 类型转换 |
{} | 花括号,大括号 |
: | 冒号 |
// | 单行注释 |
/* | 多行注释开始 |
*/ | 多行注释结束 |
逗号(,)运算符把若干表达式串在一起。 逗号的左侧总是求值为void型,也即最右侧逗号的右侧表达式变成逗号连接成的表达式的值。例如
/* 先把3赋值给y,然后把4赋值给x */
x = (y=3, y+1);
圆括号运算符用以提高括号内运算符的优先级。
优先级
优先级由高到低如下所示
()
[]
->
.
!
~
++
--
-
(type)
*
&
sizeof
*
/
%
+
-
<<
>>
<<=
>>=
==
!=
&
^
|
&&
||
? :
=
+=
-=
*=
/=
,
结合性
- 所有运算符都是左结合的
- 一元运算符
*
&
-
和问号运算符? :
是右结合的
更新于2022年04月09日