C语言操作符总结

C语言操作符是说明特定操作的符号,它是构造C语言表达式的工具。下面对C语言操作符做一个小小的总结:

C语言操作符具体分为算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。下面一一介绍:

 

1.算术操作符。

  算术操作符包含+ -  *  /  %五个操作符。

  除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。%操作符两个操作符必须都是整数,返回的是整除之后的余数。

  对于/操作符如果两个操作符都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法,即只要有一个操作数是浮点数,就执行浮点数除法。

      

2.移位操作符。

   移位操作符包括<<(左移操作符)  >>(右移操作符)

   <<操作符相当于给原操作数乘2>>操作符相当于给原操作数除2(据情况而定)

   <<操作符的移位规则为:左边抛弃,右边补0

   >>操作符的移位规则分为两种:1、逻辑右移:左边用0填充,右边丢弃。2、算术右移:左边用原该值的符号位填充,右边丢弃。

   注意:对于移位运算符,不要移动负数位,这个是标准未定义的。

 

3.位操作符。

位操作符包括&(按位与)|(按位或)^(按位异或)三种操作符。

&操作数可以判断一个数二进制序列中1的个数。具体方法是:将这个二进制序列与1进行按位与操作,进而得到最低位是否为1(如果是1,则按位与的结果为1,;如果不是1,按位与的结果为0),再将序列向右移位,再与1进行按位与判断,如此循环32次即可。

|操作符可以将二进制序列中的0置为1。具体方法是:将序列与要置1相对应这一位为1的序列进行按位或操作即可。

^操作符可以不创建临时变量,实现两个数的交换。eg:要交换a变量和b变量的值,只需a=a^b,b=a^b,a=a^b即可。

 

4.赋值操作符。

赋值操作符的作用是将一个表达式的值赋给一个变量。赋值操作符的右边可以使任何表达式,但左边必须是一个变量名。

赋值操作符可以连续使用,但一般不推荐,会使代码不清晰且不易调试。

 

5.复合赋值符。

复合赋值符包括+=-=*=/=%=>>=<<=&=\=|==等操作符。

这些运算符都可以写成复合的效果。eg:x=x+10x+=10效果是一样的。其他复合赋值符与+=用法相同。

 

6.单目操作符。

单目操作符包括!(逻辑反操作)-(负值)+(正值)&(取地址)sizeof(操作数的类型长度,以字节为单位)~(对一个数的二进制按位取反)--(前置、后置--)++(前置、后置++)*(间接访问操作符,解引用操作符)(类型)(强制类型转换)等。

sizeof:

sizeof操作符可以求变量(类型)所占空间的大小。

sizeof(数组名),数组名表示整个数组,sizeof(数组名)表示的是整个数组的大小,单位是字节。当int a =0,sizeof(a)表示一个整形变量的大小,相当于sizeof(int),输出4,即4个字节。

注意:sizeof内部的表达式是不参与运算的。

++运算符:

对于前置的++来说,运算顺序是先对变量进行自增或自减运算,然后使用变量。egint a=10;int x=++a;先对a进行自增,然后对使用a,也就是表达式的值是a自增之后的值,x11

对于后置的++来说,运算顺序是先对变量进行使用,再进行自增或自减运算。eg:int a=10; int x=a++;先对a使用,再增加,这样x的值是10,之后a变成11

 

7.关系操作符。

关系操作符包括<>>=<=!===等操作符。

注意:要区分==(用于测试相等)=(赋值操作符)

 

8.逻辑操作符。

逻辑操作符包括&&(逻辑与)||(逻辑非)两个操作符。

注意:要区分逻辑与和按位与、逻辑或和按位或。eg:1&2结果为0,1&&2结果为11|2结果为3,1||2结果为1

 

9.条件运算符。

条件运算符的符号为exp1?exp2:exp3。它的含义是如果exp1的结果为真,则表达式的值为exp2,否则,整个表达式的值为exp3

 

10.逗号表达式。

逗号表达式的符号为exp1,exp2,exp3,…expN。逗号表达式就是用逗号隔开的多个表达式。运算法则为:从左到右依次执行。整个表达式的结果是最后一个表达式的结果。

 

11.下标引用、函数调用和结构成员。

下标引用:

符号位[ ]。操作数为一个数组名+一个索引值。

函数调用操作符:

接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。至少会有一个操作数,即函数名。

结构成员:

访问一个结构的成员:. 结构体.成员   ->结构体指针->成员名。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值