想要把操作符了解好,就必须了解操作符的用途: 指令系统的每一条指令都有一个操作符,它表示该指令应进行什么性质的操作。不同的指令用操作符这个字段的不同编码来表示,每一种编码代表一种指令。组成操作符字段的位数一般取决于计算机指令系统的规模。操作符的分类有很多:算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式下标引用、函数调用和结构成员。我下面就分别的介绍下这些操作符。
算术操作符:很简单的理解,所谓加
+ 减 - 乘 * 除 /,也就平常我们学的多了个%求余而已。名字没有多大变化,只是用法有要求:
1.
除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
2.
对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3.
%操作符的两个操作数必须为整数。返回的是整除之后的余数。只要按照正常思维,利用算术操作符就很easy。
移位操作符:一个移到这边,那边的一个操作符;左右座位移动,空下来的座位就需要补位,它遵循 1!左移操作符移位规则:
左边抛弃、右边补0,而右移
1. 逻辑移位 左边用0填充,右边丢弃
2. 算术移位
左边用原该值的符号位填充,右边丢弃
2. 算术移位
左边用原该值的符号位填充,右边丢弃
位操作符:对字节或字中的最小位(bit)进行测试、置位或移位处理,位操作运算符是用来进行二进制位运算的运算符,也就是他们的操作数必须是整数。它分为两类:逻辑位运算符和移位运算符。
1、逻辑位运算符
(1)单目逻辑位运算符:~(按位求反)
作用是将各个二进制位由1变0,由0变1。
(2)双目逻辑运算符:&(按位与),|(按位或),^(按位异或)
其中优先级&高于^,而^高于|。
& :两个都为1时结果为1。
| :两个其中有一个为1则结果为1。
^ :两个不同则结果为1,否则为0。
2、移位运算符
移位运算符有两个,<<(左移)、>>(右移)。两个 都是双目运算符。
赋值操作符:是可以自主赋值,不喜欢的初值换,人性操作,满足要求,赋值操作符可以连续使用,比如:int love=1;int lucky=3;
单目操作符:就是对一个对象的操作! 操作种类:
逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换, 我们对sizeof()是以字节为单位返回操作数的大小,操作数必须在()里面
赋值操作符:> >=< <= != 用于测试“不相等”==,跟我们数学学的是一样的,很简单,注意不要把==和=混淆就好
逻辑操作符:逻辑操作符有哪些:&&逻辑与 || 逻辑或
条件操作符(也叫三目操作符)
exp1 ? exp2 : exp3;
举例: a>5 ? b=3: b=4; //如果a>5,那么b就等于3,否则等于4;
通常这么用 b = a>5 ? 3: 4;
因为,这个表达式的意思是:如果表达式一为真,那么整个表达式的结果就是第二个表达式!!!
逗号表达式下标引用:
用逗号隔开的表达式:exp1, exp2, exp3,......expn;
逗号表达式是从左往右运算的,但整个表达式的结果是最后一个表达式的结果;下标引用操作符
[ ]
这个符号是有两个操作数的,一个是数组名,一个是下标。
函数调用操作符
()
一个或者多个操作数,函数名+参数个数;
结构成员操作符
. ->
定义一个结构体
struct Stu
{
char name[20];
int age ;
int height;
总结:每个操作符是要注意优先级和结合性的,准确的了解一个操作符,才能满足我们的期望值。