c语言中定义运算符(c语言运算符和表达式)
c语言中定义运算符(c语言运算符和表达式)用算术运算符和括号将运算对象连接起来的、符合 C 语法规则的式子称c算术表达式。运算对象包括常量、变量、函数等。2算术表达式和运算符的优先级与结合性i++, i --(在使用 i 之后,使 i 的值加(减)1)y i 和 i 的不同之处在于: i 是先执行i= i 1,再使用 i 的值;而i 是先使用 i 的值,再执行 i =i 1。自増(减)运算符常用于循环语句中,使循环变量自动加1;也用于指针变量,使指针指向下一个地址。
C语言运算符和表达式
C 语言把除了控制语句和输入输出以外几乎所有的基本操作都作为运算符处理。
1自増( +)、自减(--)运算符:
自增( +)、自减(--)运算符的作用是使变量的值加1或减1,例如,+ i -- i (在使用之前,先使的值加(减)1)
i++, i --(在使用 i 之后,使 i 的值加(减)1)
y i 和 i 的不同之处在于: i 是先执行i= i 1,再使用 i 的值;而i 是先使用 i 的值,再执行 i =i 1。
自増(减)运算符常用于循环语句中,使循环变量自动加1;也用于指针变量,使指针指向下一个地址。
2算术表达式和运算符的优先级与结合性
用算术运算符和括号将运算对象连接起来的、符合 C 语法规则的式子称c算术表达式。运算对象包括常量、变量、函数等。
c语言规定了运算符的优先级(如先乘除后加减),还规定了运算符的结合性。
在表达式求值时,先按运算符的优先级别顺序执行,
如果在一个运算对象两侧的运算符的优先级别相同, C 语言规定了各种运算符的结合方向(结合性),算术运算符的结合方向都是“自左至右”,即运算对象先与左面的运算符结合。算术运算符是自左至右(左结合性),赋值运算符是自右至左(右结合性)。
赋值运算符和赋值表达式
赋值运算符就是=,表示“存储”,即把赋值号右边表达式的值存给左边的变量。
可以出现在赋值号左边的式子,称为左值(left value)。左值必须有内存空间且允许赋值。常用的左值是变量,但常变量不能作为左值。
赋值运算符的结合性,从右至左。若有两个赋值号,要先执行右边的。如:a=b=2相当于是a=(b=2).
3不同类型数据间的混合运算
在程序中经常会遇到不同类型的数据进行运算,如果一个运算符两侧的看据类型不同,则先自动进行类型转换,使二者成为同一种类型,然后进行运算。整型、实型,字符型数据间可以进行混合运算。规律为
1)十、一、*、/运算的两个数中有一个数为 float 或 double 型,结果是 double 型,因为系统将所有 float 型数据都先转换为 double 型,然后进行运算。2)如果 int 型与 float 或 double 型数据进行运算,先把 int 型和 float 型数据转换为 double 型,然后进行运算,结果是 double 型。
3)字符( char )型数据与整型数据进行运算,就是把字符的 ASCII 代码与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的 ASCII 代码转换为 double 型数据,然后进行运算。
4强制类型转换运算符
可以利用强制类型转换运算符将一个表达式转换成所需类型。例如:
( double ) a (将 a 转换成 double 型)
( int )( x+ y )(将 x+ y 的值转换成 int 型)
( float )(5%3)(将5%3的值转换成 float 型)其一般形式为
要转换类型的表达式应该用括号括起来。如果写成(int)x+y,则只将 x 转换成整型,然后与 y 相加。
需要说明的是,在强制类型转换时,得到一个所需类型的中间数据,而原来变量的类和未发生变化。例如:
a =( int ) x
如果已定义×为 float 型变量, a 为整型变量,进行强制类型运算( int ) x 后得到一个 int 类的临时值,它的值等于 x 的整数部分,把它赋给 a ,注意 x 的值和类型都未变化,仍为 float 型。该临时值在赋值后就不再存在了。
有两种类型转换。一种是在运算时不必用户干预,系统自动进行的类型转换,如3 6.5。另一种是强制类型转换。当自动类型转换不能实现目的时,可以用强制类型转换。如%运算符要求其两侧均为整型量,若 x 为 float 型,则 x %3不合法,必须用( int ) x %3。
强制类型转换运算优先于%运算,因此先进行( int ) x 的运算,得到一个整型的中间变量,然后再对3求余。
算术运算符
算术运算符有7个: (正号),-(负号),*(乘号)在C语言中*不可以省略,/(除),%(求余)要求参与运算的都是整数, (加),-(减)。
求余运算的结果,结果的符号应与%前面那个数的符号相同,例如5%-3= 2,而-5%3=-2。
算术运算符的目数
7个运算符中, (正号),-(负号)都是单目运算符,剩下的5个都是双目运算符,单目运算符是指它只需要一个运算量(即操作数),比如-5,只需要在负号后写一个数,前边不需要,故是单目运算符。而双目运算符则需要两个运算符,例如a b。加号前各需要一个运算量。
此外,在函数调用时,有时为了使实参与形参类型一致,可以用强制类型转换运算符得到一个所需类的参数。
c语言运算符和表达式