算数 *** 作符
加 ( + ) 减 ( - ) 乘 ( * ) 除 ( / ) 取余 ( % )
移位 *** 作符
左移 *** 作符 ( << ) 右移操作符 ( >> )
位 *** 作符
按位与 ( & ) 按位或 ( | ) 按位异或 ( ^ )
赋值 *** 作符
= 使右边的值赋值到左边
+=
-=
*=
/=
&=
^=
|=
>>=
<<=
举例代码
//以下两行代码运行结果相同 a = a + 3; a += 3;
单目 *** 作符
顾名思义,只有一个 *** 作数的 *** 作符叫单目 *** 作符
! 逻辑反 *** 作
- 负值
+ 正值
& 取地址
sizeof *** 作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问 *** 作符(解引用 *** 作符)
(类型) 强制类型转换
关系 *** 作符
大于 ( > ) 大于等于 ( >= ) 小于( < ) 小于等于 ( <= ) 等于 ( == ) 不等于 ( != )
注意:等于 ( == )不是赋值 *** 作符( = )。
逻辑 *** 作符
逻辑与 ( && )两个条件同时满足时成立
逻辑或 ( || )有一个条件满足时成立
int a = 0; int b = 0; if ((a == 0) && (b == 0)) printf("&&成立n"); if ((a == 0) || (b == 1)) printf("||成立n"); if ((a == 1) || (b == 0)) printf("||成立n");
运行结果
条件 *** 作符
exp1 ? exp2 : exp3
//如果a大于b,则m = a,否则m = b m = (a > b) ? (a) : (b);//这一行代码和下面四行代码执行的效果相同 if (a > b) m = a; else m = b;
逗号表达式
exp1, exp2, exp3, …expN
逗号表达式执行的结果为最后一个表达式的结果(不代表只需要运行最后一个表达式)
int a = 1; int b = 2; int c = 3; int m = 0; m = ((a = a + b), (b = a + c), (c = b + c)); printf("m = %dn", m);
m的值是最后一个表达式的结果,但最后一个表达式的结果受前面表达式的影响,所以逗号表达式的结果不能只运算最后一个表达式。
下标引用、函数调用和结构成员
[]
下标引用 *** 作符
*** 作数:一个数组名+一个索引值
()
函数调用 *** 作符
接受一个或多个 *** 作数:第一个 *** 作数是函数名,剩余的 *** 作数就是传递给函数的参数。
.
结构体成员访问
结构名.成员名
->
解引用 *** 作符
表示对指针指向的内存进行 *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)