定义:
表达式(expression)是由一个或多个操作数(operand)通过操作符(operator)组合而成。
1. 操作符——除法(/)和求模(%)
注意:
除法和求模两种运算,操作数都必须是整型,包括:bool、char、short、int和long类型,以及对应的unsigned类型
如果两个操作数为正,除法和求模操作的结果也是正数或为零;
如果两个操作数为负,除法操作的结果为正数或为零,而求模的结果为负数或为零;
如果两个操作数,一个为正一个为负,除法和求模的结果取决于机器;如果求模的结果随分子的符号,则向零一侧取整,如果求模的结果随分母的符号,则向负无穷一侧取整。
举例说明:
21/6; //ok,result is 3
21 / 7; //ok,result is 3
-21 / -8; //ok,result is 2
21 / -5; //machine-dependent: result is -4 or -5
21%6; //ok,result is 3
21%7;//ok,result is 0
-21 % -8; //ok,result is -5
21 % -5; //machine-dependent: result is 1 or -4
2. 位操作符
如:unsigned
char b1=01100101
unsigned char
b2=10101111
求反(~):b3=~b1; //ok,result is
10011010
左移(<<):b4=b1<<2; //ok, result is
10010100
右移(>>):b5=b1>>3; //ok,result is
00001100
位与(&):b6=b1 & b2; //ok,result is
00100101(对应位都为1时,位与结果为1,其余都为0)
位或(|):b7=b1 | b2; //ok,result is
11101111(对应位有一个为1,位或结果就为1,其余都为0)
位异或(^):b8=b1 ^ b2; //ok, result is
11001010(对应位有且仅有一个为1,位异或结果就为1,其余都为0)
3. sizeof操作符
sizeof操作符的作用是返回对象或类型名的长度,返回值的类型为size_t,长度的单位是字节。
对char类型或值为char类型的表达式做sizeof操作,结果为1;
对引用类型做sizeof操作将返回存放此引用类型对象所需的内存空间大小;
对指针做sizeof操作将返回存放指针所需的内存大小,如果要获取该指针所指向的对象的大小,必须对该指针进行解引用;
对数组做sizeof操作等效于将对其元素类型做sizeof操作的结果乘以数组元素的个数。这里由于sizeof返回整个数组在内存中的存储长度,因此可以用sizeof数组的结果除以sizeof其元素类型的结果来表示数组元素的个数。