1.布尔类型
C不具备布尔类型,而是用整型来替代,一般情况下,0表示假,非0表示真
2.位操作符
第五章中介绍了很多关于位操作符的内容,位操作与编汇相关,现在先跳过需要的时候再来看。
3.条件操作符
条件操作符接受三个操作数 expression1 ? expression2: expression 先计算expression1,若为真,则整个表达式的值为expression2,反之为expression3 eg: a>5 ? b-6 : c/2 若a大于5 则执行b-6,反之执行c/2 利用条件操作符,可极大简化简单的条件语句
4.逗号操作符
expression1,expression2,expression3,… 逗号操作符将两个或多个表达式分隔开,这些表达式自左向右逐个求值,整个逗号表达式的值就是最后那个表达式的值。 eg:
if(b
+1,c
/2,d
>0)
如果d的值大于
0,整个表达式为真
虽然上例看起来逗号表达式没有什么意义,再看一个例子
while(a
=get_value(),count_value(),a
>0)
这样就相当于循环获得下个a的值的过程被简化,利于维护
5.左值和右值
L-value 和R-value简单的来说 左值需要特定的位置,且只能将右值赋值给左值 eg: a=b+25; 正确 b+25=a; 错误 因为b+25并没有一个特定的地址去储存这个值,它只是一个表达式 同理 *pointer=20; 左值虽然也是一个表达式,但它有固定的地址存在,因此是正确的赋值。