1.运算符的种类?
c语言的运算符可分为以下几列:
算术运算符:用于数值运算,包括+、-、*、/、%、++、--
关系运算符:用于比较运算,包括>、<、==、>=、<=、!=
逻辑运算符:&&、||、!
位操作运算符:参与运算的量,按二进制位参与计算,&,|,!,~,^,<<,>>
赋值运算符:=,还有一些复合算数赋值和复合位运算赋值。
条件运算符(?:)
逗号运算符:,
指针运算符:取内容*和取地址&
字节运算符:sizeof
特殊运算符:() 【】(数组下标),成员运算符(->、.)
2.运算符的优先级问题
同一优先级的运算符,运算次序由结合方向所决定
简单归纳为:!>算数运算符>关系运算符>&&>||>赋值运算符
3.运算符的结合性
左结合:(算数运算符的结合方向)运算对象先与左面的运算结合。
右结合:自右至左,例如赋值运算符。
4.++,--操作符
++是自增1,--是自减1。
++a和a++有什么区别
++a是自增1再用a进行运算,a++是先将a用于运算再自增1
比如b【j++】=a【i】
意为将a【i】的值赋给b【j】,然后将j自增1。
5.表达式及分类
表达式:将同类型的数据(常量,变量和函数等)用运算符按照一定规则连接起来的式子。表达式一定有返回值。表达式后加分号,构成表达式语句。
分类:算术表达式、关系表达式和逻辑表达式。
6. 逗号运算符
作用:把两个表达式连接到一起,形成逗号表达式。
求值过程:分别求每个表达式的值,以最后的表达式的值作为整个表达式的值。
逗号表达式不注重求值的结果,注重求值过程中哪些变量的值发生了变化。
7.按位或运算:符号为|,参与运算的两个数字对应的二进制位相或,只要对应的二进制位有一个为1时,结果就为1,参与运算的数同样以二进制补码出现.
8.使用表达式应该注意几点?
1. 条件运算符的运算优先级低于关系运算符和算数运算符,但高于赋值符。
2. 条件运算符”?”和”:”是一对运算符,不能分开单独使用。
3. 条件运算符的结合方向是自右至左。
9.位运算符c语言提供了哪些位运算符?
&(按位与) |(按位或) ^(按位异或) ~(取反) <<(左移) >>(右移)
10.左移和右移的功能是什么?
左移运算符”<<”是双目运算符,其功能是把”<<”左边的运算数的各二进制全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0.
右移运算符”>>”是双目运算符,其功能是把”>>”左边的运算数的各二进制全部右移若干位,由”>>”右边的数指定移动的位数,但是对于有符号数,右移时,符号位将随同移动,为正数时,最高位补0,而为负数时,最高位补1,最高位补1或0取决于编译系统的规定。