1.操作符(运算符)分类:
(1)算术运算符 + - * / % ++ --
(2)关系运算符 > < == >= <= !=
(3)逻辑运算符 ! && ||
(4)位运算符 << >> ~ | ^ &
(5)赋值运算符 =及其扩展赋值运算符
(6)条件运算符 ?:
(7)逗号运算符 ,
(8)指针运算符 * &
(9)求字节运算符 sizeof
(10)强制类型转换运算符 (类型)
(11)成员运算符 . ->
(12)下标运算符 []
(13)其他 如函数调用运算符
2.简单介绍几个操作符(运算符):
(1)算术运算符 + - * / % ++ --
%只能作用于两个整数,不能用于浮点数
/运算符的的操作数只要有一个位浮点数,则结果为浮点数,否则结果为整数。
++ -- 注意a++和++a的区别
int a = 1;
int c = a++;
//c = 1 a= 2
int d = ++a;
// d = 3 a = 3
++a :a先自增1,然后表达式再使用a的值
a++:表达式先使用a的值,然后a再自增1
对a来说其结果都是a = a+1;
(2)关系运算符 > < == >= <= !=
关系运算符组成的关系表达式的值是逻辑类型的,即真和假。有的编译系统中用1表示 真,0表示假。
(3)逻辑运算符 ! (逻辑非)&& (逻辑与)||(逻辑或)
有的编译系统规定:非零为真,真用1表示。零为假,假用0表示。
&& 若第一个表达式为假,则不计算第二个表达式。
|| 若第一个表达式为真,则不计算第二个表达式。
(4)位运算符 << (左移运算符)>>(右移运算符) ~(按位取反)
|(按位或) ^(按位异或) &(按位与)
计算机中数据都是以二进制补码形式存储的。例如在32位平台上,-1的二进制为
11111111 11111111 11111111 11111111
左移运算即将二进制数想左移动指定的位数,移掉的丢弃,右边空出的一律补0。
例如 -1<<3 结果为 11111111 11111111 11111111 11111000
右移运算即将二进制数想左移动指定的位数,移掉的丢弃,左边补位有两种情况,一 种是一律补0,另一种是补符号位。一般是补符号位。
例如 -1>>3 结果为 11111111 11111111 11111111 11111111
~ 将各个二进制位有由1变0,由0变1。
| ^ &则是将对应的二进制位进行相应的运算。
(5)赋值运算符 =及其扩展运算符
就是将一个值赋给变量。
复合赋值运算符 += %= &= >>=等等。a += 3;等价于 a = a+3;其他赋值运算符于此类 似。
(6)条件运算符 ?:
exp1?exp2:exp3 若exp1为真,则执行exp2,否则执行exp3;
(7)逗号运算符 ,
exp1,exp2,exp3 ,...expn 从左向右依次计算各个表达式的值,最后一个表达式的值为整 个 逗号表达式的值和类型。
(9)求字节运算符 sizeof
int a;
sizeof (int);// √
sizeof (a);// √
sizeof int;// ×
sizeof a; // √
sizeof 求的是类型说明符(如int)和表达式所表示的数据所占有的字节数。