1.算术操作符(5)
- * / % +
算术操作符中需要注意的是除了%之外,其余的操作符均可用于整型和浮点型。%操作必须作用的是整型
2.移位操作符(2)
左移:<<
举个例子:
int main ()
{
int a=1;
int b=a<<1;
printf("%d",b);
}
如图所示
右移:>>
int main ()
{
int a=1;
int b=a>>1;
printf("%d",b);
}
亦是如上的代码,将左移改为右移,如图
由此我们可以看到右移分为逻辑右移和算术右移
注意:对于移位操作符不要移动负数位,这是未定义的
3.位操作符(3)
a&b a按位与b (对应的二进制位进行与 有0即0)
a | b a按位或b (对应的二进制位进行或 有1即1)
a^b a按位异或吧(对应的二进制位进行异或 相同为1 相异为0)
注意:他们的操作数必须是整数
例:不创建第三个临时变量,交换两个数的值
int main()
{
int a=10;
int b=20;
a=a^b;
b=a^b;
a=a^b;
printf("a=%d,b=%d",a,b);
return 0;
}
这是异或运算一个很典型的栗子
3.赋值操作符
即“=”,除了这个最基本的操作符之外,还有很多复合赋值符,就不一一介绍了自己看看就明白了不难
4.sizeof关键字
sizeof是一个经常被误认为函数的关键字^_^它的功能是求变量或类型的大小(单位是字节)。
sizeof关键字最重要的一点是放入sizeof内部的表达式不参与运算
在运用这个关键字的时候关于数组就牵扯到了一点比较重要的知识:数组名代表数组首元素的地址,但是数组名单独放在sizeof关键字中,它代表的是整个数组,表示求整个数组的大小,单位是字节。但是数组名若不单独放入,那数组名就依旧代表的是首元素的地址。那么我们来算一下下面的这个式子
int arr[10]={0};
sizeof(arr);
sizeof(arr+0);
首先第一个是sizeof求出的值是40,因为求得是整个数组的大小,10个整型数字一个4个字节10个40字节。第二个sizeof求出的值是4,没单独放入sizeof中,为地址,所有的地址都为4个字节,即4。说到这其实还有一种数组名代表整个数组的情况即取地址操作&arr,它取出的是整个数组的地址,c语言中就只有这两种情况数组名代表整个数组,所以一定要记住哦!!!
其实sizeof还有很多比较容易弄混的题之后会专门写一篇关于sizeof关键字用法的博客-_-
5.++ - -
前置(++/–):先++/- -,在赋值;
后置(++/–):先赋值在++/- -;
关于前置++/- -后置++/- -在《C语言深度剖析》这本书里有很详细的解释有兴趣的话可以下去研究研究。
6.逻辑操作符
&&逻辑与 有假即假
|| 逻辑或 有真即真
这个操作符其实也比较简单但是要注意的一点是若是在第一个表达式中已经判断出了逻辑表达式的真假,之后的表达式就可以不用计算了,这一点一定要记住!!!