在C语言里操作符大致分为10种:算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结果成员。在这我为分享一下自己的总结。
一、算数操作符(+、-、*、/、%)
除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
%操作符的两个操作数必须为整数。返回的是整除之后的余数。
二、移位操作符(>>、<<)
左移操作符:左边抛弃、右边补0
右移操作符:逻辑移位(左边填0,右边丢弃),算数移位(左边用原该值的符号位填充,右边丢弃)最为常用。
注意:内存中存储的都是数的二进制序列的补码,正数的原码、反码、补码一样,负数的反码是原码的除符号位取反的二进制序列,补码是反码进一。
对于移位运算符,不要移动负数位,这个是未定义的。
三、位操作符(&按位与、|按位或、^按位异或)
在C语言中非0为真,0为假,在计算位操作符时,是用二进制计算的。
&:1&0=0;1&1=1;0&0=0.
|:1|0=1;1|1=1;0|0=0.
^:a&a=0;a^0=a.
注意:他们的操作数必须为整数。
四、赋值操作符(+=、-=、*=、/=、%=、>>=、<<=、&=、|=、=)
例 int a;a = 10;//吧10赋值给整形变量a,赋值符号是左边是被赋值变量,右边为常量。
例 a+=2;//a=a+2.其他符号以此类推。
五、单目操作符(!逻辑反操作、-负值、+正值、&取地址、sizeof操作数的类型长度(以字节为单位)、~对一个数的二进制按位取反、--前置、后置--、++前置、后置++、*间接访问操作符(解引用操作符)、(类型)强制类型转换)
sizeof:int a;sizeof(a)== sizeof(int)==4;
前置++或--:先计算表达式在使用;
后置++或--:先使用在计算表达式;
警告:在sizeof()中的表达式不计算。
六、关系操作符(>、>=、<、<=、!=、==)
警告:再编程过不小心写错程中==和=不小心写错 ,导致的错误,提议 写==号时,可以吧常量写左边,例如 5 == a;。
七、逻辑操作符(&&逻辑与、||逻辑或)
&&:一个为假,为假,两个为真,为真。
||:一个为真,为真,两个为假,为假。
八、条件操作符(exp1?exp2:exp3)
当表达式1为真时把表达式2的值赋给整个表达式,为假时把表达式3的值赋给整个表达式。
例如:max=x>y?x:y;意思是当x大于y时,把x的值赋给max,如果x小于y,把y的值赋给max。
九、逗号表达式(exp1,exp2,…………,expN)
逗号表达式就是用逗号隔开的多个表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
十、下标引用、函数调用和结构成员
1、[ ]
操作数:一个数组名+一个索引值
2、( )
函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
3、访问一个结构体的成员
.结构体.成员
->结构体指针->成员名
以上就是一些小小的总结。