C语言中的左结合性是什么?

 我来答
qyq592140
推荐于2019-10-29 · TA获得超过9811个赞
知道小有建树答主
回答量:106
采纳率:100%
帮助的人:2.9万
展开全部

其实很简单,它就是同优先级操作符在语句中的“运算优先级(或叫顺序)”。

比如12/3*4,/和*是同优先级操作符,先算12/3呢还是先算3*4呢?由于/和*都是左→右结合的,所以12/3*4就被解释为(12/3)*4,而不会被解释为12/(3*4)。

再比如当p是指针时的*p++,由于*和++同级别,它们又是右→左结合的,所以被解释为*(p++)而不会被解释为(*p)++。

从以上可知,对于不同优先级的操作符,结合性就起不到什么作用了。个人理解,仅供参考。

1、在打开的ie浏览器窗口右上方点击齿轮图标,选择“Internet选项”,如下图所示:

2、在打开的Internet选项窗口中,切换到安全栏,在安全选卡中点击“自定义级别”,如下图所示:

3、在“安全设置-Internet 区域”界面找到“Java 小程序脚本”、“活动脚本”,并将这两个选项都选择为“禁用”,然后点击确定,如下图所示:

郑邦姓念露
2019-12-24 · TA获得超过3690个赞
知道大有可为答主
回答量:3082
采纳率:32%
帮助的人:508万
展开全部
意思是:从表达式右边开始执行;只有同优先级的运算符才具有结合性“自左至右”或者“自右自左”一说。
  有些运算符的优先级是错误的。
  “当按照常规方式使用时,可能引起误会的任何运算符”就是存在错误优先级的运算符。
  .的优先级高于*。->操作符用于消除这个问题。
  *p.f变成了*(p.f)而不是(*p).f
  []高于*,于是int
*ap[]中的ap变成了元素为int指针的数组。
  函数()高于*,因此,int
*fp()不再是函数指针了,而是一个函数,返回int
*。
  逗号运算符在所有运算符中优先级最低,所以,i
=
1,
2就成了(i
=
1),
2而不是i
=
(1,
2)。
  逗号运算符的值是最右边操作数的值,逗号运算符结合性从左至右,因此又称为顺序求值运算符。
  在表达式中如果有布尔操作、算术运算、位操作等混合计算,始终应该在适当的地方加上括号。
  x
=
f()
+
g()
*
h();
  乘法先于加法执行,但是g()和h()的调用可能以任何顺序出现。
  同样,f()可能在乘法之前调用,也可能在乘法之后调用。
  优先级和结合性规则告诉你哪些符号组成一个意群,大部分这样的意群内部如何进行计算的次序是未定义的。
有些操作符,如&&和||等,其操作数的计算顺序是确定的,它们使用短路原则。
  C语言中记住两个优先级就够了:乘法和除法先于加法和减法,在涉及其他操作符时一律加上括号。
  结合性用于在几个操作符具有相同的优先级时确定先执行哪一个。
  每个操作符拥有某一级别的优先级,同时也拥有左结合性或者右结合性。所有的赋值符(包括复合赋值符)都具有右结合性(从右到左执行),因此可以使用连等的赋值形式。
  唯一的三目运算符?:也是具有右结合性的。
  所有优先级相同的操作符,它们的结合性也相同,这是必须如此的。在函数调用中,各个参数的计算顺序是不确定的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式