首页 理论教育C语言运算符和表达式简介

C语言运算符和表达式简介

【摘要】:C语言中的运算符大多数属于双目运算符。C程序中,运算符必须与运算对象结合在一起才能体现其功能,与运算符密切相关的程序构成成分是表达式。用运算符将运算对象连接起来的、符合C语言语法规则的式子称为C语言的表达式。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。表2.6给出了C语言中的运算符、运算符的优先级和结合性。

对于C语言中的运算符来说,若按照运算符能连接运算对象的个数(即运算符的目)来分,包括:

·单目运算符:只能连接一个运算对象,如++、--等。

·双目运算符:可以连接两个运算对象,如*、%等。C语言中的运算符大多数属于双目运算符。

·三目运算符:可以连接三个运算对象,C语言中只有一个三目运算符,即条件运算符。

若根据运算符的性质,C语言的运算符主要包括以下几类:

·算术运算符:用于各类数值运算,包括加、减、乘、除、求余(模运算)、自增、自减等。

·关系运算符:用于数据之间的比较运算,包括大于、小于、等于、大于等于、小于等于、不等于。

·逻辑运算符:用于在程序中构成复杂的条件判断,包括与、或、非等。

·位运算符:用于实现位操作,即对数据按二进制位方式进行运算,包括位与、位或、位非、位异或、左移、右移等。

·赋值运算符:用于对数据对象的赋值运算,赋值运算分为简单赋值和复合赋值两大类。

·条件运算符:它是唯一的一个三目运算符,用于简单的双分支求值运算。(www.chuimin.cn)

·逗号运算符:用于把若干表达式组合成一个表达式,在程序中主要用于同时处理或控制多个数据对象。

·指针类运算符:包括取地址和取内容两种运算,用于处理与地址相关的应用。·sizeof运算符:用于计算数据对象所占用的存储空间的字节长度(字节数)。·特殊运算符:包括圆括号、方括号、成员运算符等。

C程序中,运算符必须与运算对象结合在一起才能体现其功能,与运算符密切相关的程序构成成分是表达式。用运算符将运算对象连接起来的、符合C语言语法规则的式子称为C语言的表达式。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。单个的常量、变量、函数可以看作是表达式的特例。C语言表达式中的所有成分都必须以线性形式书写,没有分式,也没有上下标。例如,数学表达式:

在C程序中应书写成如下所示的表达式:

(x+b*b)/(a*b)+(a+b)/(a-b)

表达式求值按运算符的优先级和结合性规定的顺序进行。运算符的优先级是指在使用不同的运算对象进行计算时的先后顺序,C语言中运算符的优先级共分为15级,1级最高,15级最低。当一个表达式中出现不同类型的运算符时,首先按照它们的优先级顺序进行运算,即先对优先级高的运算符进行计算,再对优先级低的运算符进行计算。当两类运算符的优先级相同时,则按照运算符的结合性确定运算顺序。

C语言中运算符的结合性分为左结合和右结合。左结合(即从左至右)的含义是数据对象先和其左边的运算符结合在一起参与运算;右结合(即从右至左)的含义是数据对象先和其右边的运算符结合在一起参与运算。例如,对于表达式a+b-c的计算需要考虑结合性,加(+)减(-)都是左结合性,所以b应该先与其左边的加法运算符结合在一起参与运算(即先计算a+b),然后再进行其他运算。表2.6给出了C语言中的运算符、运算符的优先级和结合性。

表2.6 运算符及运算符的优先级和结合性