1 算术操作符
算术操作符主要是 + - * / %,在这里有几个小的知识点:除了模操作外,其余几个操作符可以用于浮点数和整形数;在进行除操作时,若两个操作数都是整数,则执行除法操作,有浮点数的话就是浮点数操作。
2.移位操作符
移位操作符为<< >>这两个操作符,一个为左移操作符,这个相当于乘法,在移动后统一补0.另一个为右移操作符,这个相当于除法,如果这个数为正数的话,就补0,负数的话补1,这主要是因为在C语言中为算术移位,而不是逻辑移位,如果是逻辑移位的话,无脑补0就完事了。
3.位操作符
位操作符有三类:按位与& 按位或| 按位异或^,这三个操作都必须为整数。在这一方面的问题大多都是一些关于二进制数制的问题,比如异或的应用就可以是不用创建临时变量就可以进行数的交换,而与和或的操作则可以在二进制数制中进行1的个数之类的求解问题:相关问题我会在以后的博客中详细写到。
4.赋值操作符
赋值操作符就是变量赋值,记得左边的值一定要可以容纳右边的值。在赋值操作符中有一个类型叫符合赋值符,复合赋值符主要包括了+= -= = /= %= >>= <<= &= |= ^=这几种,这些运算符都可以写成复合的样子,比如 x+=10就等于 x=x+10,这个样子,以此类推就可以知道其他复合操作符的意思。
5.单目操作符
单目操作符有哪些呢? !逻辑反操作(真变成假,假变成真) -负值 +正值 &取地址 sizeof (操作数的类型长度,以字节为长度,这个一般都是在编译期间确定表达式的字节大小,比如int就为四个字节。)-- ++(这两个为前置加加与减减,前置为先加减,后使用,而后置加减为先使用,后加减)在这类的应用就是一些选择题。 在单目操作符里表示解应用,在指针里会有一些应用。(类型)这个为强制类型转换的操作符,如果操作数不是一个数据类型的话,可以直接在那个类型外面加个(),做到强制类型转换。
6.关系操作符与逻辑操作符
关系操作符主要是< > >= <= != ==这几类,很简单不做讲解。而逻辑操作符则为&& 逻辑与,||逻辑或,这个和前面的按位与按位或也有很大差别。在这里给出两个例子:
#include<stdio.h>
int main()
{
int i = 0, a = 0,b = 0, c = 3, d = 4;
i = a++&&++b&&d++;
//i = a++ || ++b || d++;
printf("a=%d\n b=%d\n c=%d\n d=%d\n", a, b, c, d);
return 0;
}
在这个代码中逻辑与和逻辑或的赋值方式就可以看出来,在逻辑与中,必须得满足一个条件为真时(非0),才会跳出来,所以逻辑与的值为1 2 3 4,而在逻辑或中,前两个为或的结果,所以为1 3 3 4。
7.条件操作符,逗号表达式和下标引用、函数调用和结构成员。
条件操作符很简单,不做了解。而逗号表达式则是注意看括号里最后一个表达式的值就好了。[] 为下标引用操作符,一般在数组中应用,而()为函数调用操作符,与上面的强制类型转换都是()的形式。而访问结构体的话,.为结构体.成员名。->为结构体指针.成员名。
个人总结:以上就是关于一些操作符的小知识。