c操作符的简单应用

     c提供了所有你希望编程语言应该拥有的操作符,它甚至提供了一些你意想不到的操作符。事实上,c被许多人所诟病的一个缺点就是其种类繁多的操作符。c的这个特点使得它很难精通。另一方面,c的许多操作符具有其他语言的操作符无法抗衡的价值,这也是c适用于开发范围极广的应用程序的原因之一。

     为了方便解释,我们将操作符可以简单的分为算数操作符、移位操作位、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用函数调用和结构成员等类。下面我们简单的介绍下这些操作符及简单应用。

       常用算数操作符:+   -   *   /    %

     除了%操作符都是既适用于浮点类型又适用于整形类型。/操作符俩个操作数有一个为浮点型就执行浮点型除法运算。%为取模操作符,值得注意的是,取模运算只能进行整型运算。

       移位操作符:<<(左移)   >>(右移)

    移位操作只是简单的把一个值的位向左或向右移动。在左移位中,值最左边的几位被丢弃,右边多出来的几个空位补0。而右移位操作中存在左移位操作不曾面临的问题:从左边移入新位是,可以有两种方案。

     一种为逻辑移位,左边的空位全补0,另一种为算术移位,左边移入的位由其原来的符号位决定,符号位为1则全为1,符号位为0则全为0.

      位操作符:&     |     ^

      假定变量a的二进制为00101110,变量b的二进制为01011011。

      a&b = 00001010 ,   a | b = 01111111 ,      a ^ b = 01110101

      赋值操作符:=

      赋值操作符的结合性:从右向左

 

      单目操作符:! ++   --  ~   sizeof    *   (类型)

      !为逻辑反操作符,如果操作数为真,其结果就为假。反之,如果操作符为假,其结果就为真。

      ++  --  为自增自减操作符

      *为间接访问操作符,它与指针一起使用,用来访问指针所指向的值。

      ~ 为按位取反操作符,假定a的二进制为0001     ~a为1110

      sizeof操作符用来判断操作数类型长度,以字节为单位。

      ()为强制类型转换操作符,它用于将表达式的值转换为另外的类型。

      关系操作符:>    >=  <    <=    !=     ==

      前面四个操作符就如我们数学中一样,一看便知。!=操作符为不等于,==为等于。

      逻辑操作符:&&      ||       !

     &&逻辑与操作符为表达式1和表达式2都为真的情况下,那么整个表达式也为真。否则,就是假的。

      ||逻辑或操作符为表达式1和表达式2都为假的情况下,那么整个表达式也为假。否则,就是真的。

      条件操作符:表达式1?表达式2:表达式3  

     条件操作符接受3个操作数,它会控制子表达式的求值顺序。即表达式1为真,则执行表达式2.反之,执行表达式3.条件操作符的优先级非常低,所以它的各个操作数即使不加括号,一般也不会出问题,但是为了清楚起见,我们还是倾向于在子表达式中加上括号。这是一种较好的代码风格。

       逗号表达式:  ,   

       逗号操作符将多个表达式分隔开来。这些表达式自左向右依次求值,整个逗号表达式的值就是最后那个表达式的值。

       下标引用函数调用和结构成员:[ ]    .   ->

        arr[10]相当于*(arr+(10))     .  和 ->用来访问一个结构体的成员    如果s为结构变量,s.a就是其成员。当你拥有一个指向结构的指针而不是结构本身,这时需要访问结构变量,就需要->操作符。

         如有不足之处请见谅,并批评指正。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值