初次接触C语言,多多少少会认为神奇,就那么一堆英文字母和符号堆堆排排,就能实现一些简单的小程序。下面我来说下个人对C语言中操作符的理解。
操作符
算数操作符: + - * / %
加减乘除操作不必多说, % 为取余操作,例如 3%2=1,值得注意的是,% 操作只能是整数
移位操作符:<< 左移操作符 二进制序列按位左移,结尾补0,左边丢弃
>> 右移操作符 二进制序列按位右移,开头按照原数补0或1,右边丢弃
位操作符:& //按位与 | //按位或 ^ //按位异或
这里我介绍一种不借助第三变量交换两个数值的方法
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\n", a, b);
return 0;
}
赋值操作符: = 将右边的值赋值给左边
复合赋值符
+= -= *= /= %= >>= <<= &= |= ^=
单目操作符:
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
关系操作符:
> >= < <=
!= 用于测试“不相等”
== 用于测试“相等”
逻辑操作符:
&& 逻辑与
|| 逻辑或
条件操作符:exp1 ? exp2 : exp3 如果exp1为真,则输出exp2;若为假,则输出exp3
逗号表达式:
exp1, exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
下标引用、函数调用和结构成员:
1. [ ] 操作数:一个数组名 + 一个索引值
2. () 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数 的参数。
3. 访问一个结构的成员 . 结构体.成员名 -> 结构体指针->成员名