C语言操作符

来源:互联网 发布:世间始终你好知乎 编辑:程序博客网 时间:2024/05/28 06:07

c语言的操作符分为双目操作符,单目操作符和三目操作符。
一.单目操作符:运算所需变量为一个的运算符,又叫一元运算符。
逻辑非运算符【!】、
按位取反运算符【~】:包括符号位哦。
自增自减运算符【++, –】:a++ 先使用a,再自增
++a 给a加一,再使用
负号运算符【-】
类型转换运算符【(类型)】:强制类型转换——int a=1; a=(double)3.14;//将a强制转换成double型
指针运算符和取地址运算符【*和&】;int a=10;
int * p=&20; //此处*表示为整型指针
* p=20;//*为指针运算符
长度运算符【sizeof】 求变量时,可省括号:sizeof a //求a变量的类型长度。以字节为单位。
求类型长度时,不能省略括号: sizeof(int)
求数组长度时,sizeof(arr)//数组名单独放在内部,表示整个数组,求arr数组长度
sizeof(arr+0)//表达式中arr代表数组首元素地址,求arr数组首元素长度
二.双目运算符:运算所需变量为二个的运算符,又叫二元运算符。
1.算数操作符
我们常用的+ - * / % 都属于算数操作符。需要注意的是%操作符在使用的时候,两边的数必须是整数。
2.移位操作符
移位操作符分为左移位操作符”<<”和右移位操作符”>>”.
所谓移位操作符即把数据看成二进制数,对其进行左移或者右移的操作。
例如:a=10;//二进制位为00000000 00000000 00000000 00001010
a>>1;//将a的二进制位向右移动一位,最右边的丢弃,左边补上的位由你的编译器决定。右移分为算术右移和逻辑右移。 算术右移即右边丢弃,左边补符号位(正数补0,负数补1)。
逻辑移位即右边丢弃,左边补0。
a>>1;//00000000 00000000 00000000 00000101 注意:这种情况下,a的值并没有发生改变。
将a>>1二进制代码对应的10进制数的值为5. 为1/2的a.
所以将一个数右移,有给该数乘以2的效果。同理,将一个数左移,相当于给该数·除以一个2.
3.位操作符
& 按位与……………………对应二进制位进行与运算(0&0=0,0&1=0,1&1=1)
| 按位或……………………对应二进制位进行或运算(0|0=0,0|1=1,1|1=1)
^ 按位异或…………………对应二进制位进行异或运算(相异为1,相同为0)
4.赋值操作符
= 给一个变量进行赋值
注意:
int a=5;
if(i=5)//这个时候,不管i的值是多少,这里都将i赋值成5,if语句永远正确。
所以要注意在用if语句的时候,不要将==与=混淆
printf(“hehe”);
5.复合赋值符
++ – += -= &= ^= |=
6.关系运算符

>=     <      <=     优先级相同(高)       !=      ==             优先级相同(低)

7.逻辑操作符
&& 逻辑与 当关系式的前面已经判定为假(0)的时候,后面不用进行计算。 0&&任何==0
|| 逻辑或 当关系式的前面已经判定为真(1)的时候,后面不用进行计算。1||任何==1
8.下标引用操作符
[] 数组 arr[5]等价于*(arr+5)
9.逗号运算符
,一种是做分隔符,另一种是作运算符。在变量声明语句、函数调用中,逗号是做分隔符用的。 当逗号作为运算符使用时 时一个双目运算符,其运算优先级是所有运算符中最低的。逗号运算符的运算顺序是自左向右,
如:
int i=8;
a=(a=i+1,i+2,i+3);

上述赋值语句的执行顺序为先对a变量赋值9,再计算i+2得10,再计算i+3得11,最后将11作为逗号表达式的值赋给变量a.

三目操作符:
条件操作符
exp1?exp2:exp3 int b=a>3?2:6
exp1为真,则exp2 a>5,b=2;
否则 exp3. a<=5,b=6
函数调用
函数名(实参列表)
如果调用的是无参函数,则实参列表可以没有,但括号不能省。若实参列表包含多个实参,则各参数间用逗号分开。

对C语言操纵符的认识就这么多,如果有不足或者错误的地方,欢迎指出

原创粉丝点击