C语言中常见错误之一

     C语言是一门功能性强,使用方便灵活的一门面向过程语言。面向过程的语言管理起来比较麻烦,一条代码地执行,而面向对象的代码可以进行重用。下面我们就来说说比较常见的错误:

1.算术表达式和运算符的优先级和结合性

 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,

称为C算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C算术表

达式:

      a*b/c-1.5+'a'

  C语言除了规定了运算符的优先级外,还规定了运算符的结合性。在表达式求值时,先

按运算符的优先级别顺序执行,例如先乘除后加减。如表达式a-b*cb的左侧为减号,右

侧为乘号,而乘号的优先级高于减号,因此,相当于a-(b*c)

      如果在一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方

”处理。C语言规定了各种运算符的结合方向(结合性),算术运算符的结合方向都是“自

左至右”,即先左后右,因此b先与减号相结合,执行a-b的运算,然后再执行加c的运算。

“自左至右的结合方向”又称“左结合性”,即运算对象先与左面的运算符结合。以后可以看

到有些运算符的结合方向为“自右至左”,即右结合性(例如,赋值运算符,若有a=b=c,按

从右到左的顺序,先把变量c的值赋给变量b,然后变量b的值赋给a)。

例如:

   1+2-3*4

      由于*”的优先级最高,所以先挑运算对象,表达式的含义为

    1+2-(3*4)

      剩下的两个运算符+”和“-”的优先级相同,所以看结合性,这两个运算符的结合性是从左到右,因此左面的先挑,表达式的含义可以进一步明确为

    (1+2) - (3*4)

      最后,可以确定-”的运算对象分别为 (1+2) (3*4)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值