第三章运算符和表达式<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1常用运算符

1+,—,*/%(加,减,乘,除,求余均为双目运算符)

(除,求余运算只适用于整型运算,加,减,乘,运算还可以作为浮点数运算符,加,减运算还可以作字符运算)

 

2)自增自减运算

自增运算符作用于一变量,可使该变量的值增一,作为前缀时,其表达式的值为原变量值增一,作为后缀时,其表达式的值不变。(自减依然,变量值不管自增自减,前缀后缀,都进行自增/自减)

注意:自增自减运算符只能作用于变量,不能作用于常量和表达式。

 

3)关系运算符

<<=>>===,!=(小于,小于等于,大于,大于等于,等于,不等于)

(前四个运算符优先级相同,后两个优先级相同。)

关系运算符组成的关系表达式的值是逻辑值,即真或假(10

 

4)逻辑运算符

!,&&||(非,与,或)

 

5)位操作运算符

~&|^(求反,与,或,按位异或)

进行逻辑位操作时,先将操作数华为二进制数,然后再按下列运算规则进行。

求反:是将操作数中各个二进制位逐位求反,即10,01

与:是将两个操作数每位相与,除了111外,其他均为0

或:是将两个操作数每位相或,除了000外,其余均为1

按位异或:是将两个操作数每位相加,不考虑进位,即两位相同的为0,两位不同的为1

 

移位运算符:用来将某个操作数像某个方向移动指定的二进制位数。

>>表示右移运算符

<<表示左移运算符

举个例子:

4>>2的值为1

解释一下:4的二进制代码为0100,往右移2位变为0001

(右移运算时,移去的位被弃掉,左端补0或补符号位;

左移运算时,移去的位被丢掉,右端一律补0。)

 

6)赋值运算符(给变量赋值)

+=-=*=/=%=&=|=^=>>=<<=

(加赋值,减赋值,乘赋值,除赋值,取余赋值,位与赋值,位或赋值,位异或赋值,右移赋值,左移赋值)

7)其他运算符

三目运算符:d1d2d3(先计算d1,如果d1的值是非0,则整个表达式的值是d2的值;如果d1的值是0,则整个表达式的值是d3的值。)

 

逗号运算符:逗号表达式的值是组成它的最后一个表达式的值。

 

Sizcof运算符:(用来求得某种类型或某种变量所占内存的字节数)

格式如下:sizeof{类型说明符}{变量名}

如:printf(“%d\n”,sizeofchar));

 

取地址运算符:(用来获取某个变量的地址值)

格式如下:&(变量名)

 

取内容运算符:(用来间接获取某变量的值。即获取该运算符所作用的指针所指向的变量的值。)例如:

Int a=5 *p=&a;(*p的值是5.即指针p的内容是5。)

2运算符的优先级

先说断口诀“去掉一个最高级,去掉一个最低级一二三赋值”(优先级由左至右)

解释一下:

最高级:括号,元素,成员;

最低级:逗号;

一:单目运算符;

二:双目运算符;

三:三目运算符;

赋值:赋值运算符。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 

3表达式(常量,变量,函数和运算符组合起来的有意义的式子)

合法的表达式经过计算后都具有一个确定的值和类型。

1)  算术表达式(算术表达式的类型由参与算术表达式的个操作数的类型决定。)

2)  关系表达式(由关系运算符组成的表达式,关系表达式的值为01,其类型为int型)

3)  逻辑表达式(由逻辑运算符组成的表达式,逻辑表达式的值为01,其类型为int型)

4)  赋值表达式(由赋值运算符组成的表达式。)

两大特点:

1.具有副作用:除了改变变量值外,还改变表达式本身的值。

   2.结合性从右向左。      

5)  条件表达式(条件表达式功能相当于if语句。)

6)  逗号表达式(将若干个独立的表达式连接起来的表达式,其值和类型均为最后一个表达式的值和类型,顺序是自左至右。)