C语言中左右结合性什么意思,C语言中左右结合性,怎么理解?

2020-12-31 15:31:26 字数 5399 阅读 8268

1楼:

其实很简单,它就是同优先级操作符在语句中的“运算优先级(或叫顺序)”。比如12/3*4,/和*是同优先级操作符,先算12/3呢还是先算3*4呢?由于/和*都是左→右结合的,所以12/3*4就被解释为(12/3)*4,而不会被解释为12/(3*4)。

再比如当p是指针时的*p++,由于*和++同级别,它们又是右→左结合的,所以被解释为*(p++)而不会被解释为(*p)++。从以上可知,对于不同优先级的操作符,结合性就起不到什么作用了。个人理解,仅供参考。

2楼:匿名用户

对左边还是右边的操作对象产生影响。

c语言中左右结合性,怎么理解?

3楼:志当存高远

简单说就是,从表达式右边开始执行;

只有同优先级的运算符才具有结合性“自左至右”或者“自右自左”一说。

exp(不同优先级运算符,依据优先级高低进行运算):

int a = 1, b =10, c = 30;

int a = a * b + c;

因为 * 比 + 的运算符优先级高,所以

先计算a * b (先计算左边,未考虑结合性),在计算 10 + c结果是 a = 300

exp(同优先级运算符依据结合性进行运算):

int a, b = 1, c = 8;

a = b = c;

赋值运算符其结合性即为自右向左,即 a = ( b = c), 其结果是 b = 8, a = 8;

(错误答案:自左向右进行结合的话a = 1)

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

4楼:匿名用户

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

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

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

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

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

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

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

5楼:聊苍敛曼珠

同一个算式

a-b+c

左结合性

:(a-b)+c

右结合性:a-(b+c)

6楼:郑邦姓念露

意思是:从表达式右边开始执行;只有同优先级的运算符才具有结合性“自左至右”或者“自右自左”一说。

有些运算符的优先级是错误的。

“当按照常规方式使用时,可能引起误会的任何运算符”就是存在错误优先级的运算符。

.的优先级高于*。->操作符用于消除这个问题。

*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语言中记住两个优先级就够了:乘法和除法先于加法和减法,在涉及其他操作符时一律加上括号。

结合性用于在几个操作符具有相同的优先级时确定先执行哪一个。

每个操作符拥有某一级别的优先级,同时也拥有左结合性或者右结合性。所有的赋值符(包括复合赋值符)都具有右结合性(从右到左执行),因此可以使用连等的赋值形式。

唯一的三目运算符?:也是具有右结合性的。

所有优先级相同的操作符,它们的结合性也相同,这是必须如此的。在函数调用中,各个参数的计算顺序是不确定的。

7楼:祁馨姬令璟

比如a+b-c,相当与(a+b)-c,也就是先算(a+b).这就是左结合性,对于同一优先级的操作符,从左向右计算.

单目运算符一般具有右结合性.例如-a++,相当于-(a++)

8楼:顿谷佼夜卉

您好!很高兴为您解答。

““左结合性”,即运算对象先与左面的运算符结合。”

——《c程序设计》第三版p56,谭浩强著

不同级运算时,应首先考虑运算符的优先级问题。

同级运算时,例如运算a-b+c,运算对象先与算式最左的运算符“-”结合,即先计算“a-b”,再由左至右依次和其他运算符结合计算。

望采纳~如您还有不解,欢迎追问~

c语言中右结合性和右结合性是什么意思

9楼:匿名用户

举个例子

a=b+c+d

=是右结合的,所以先计算

(b+c+d),然后再赋值给a

+是左结合的,所以先计算(b+c),然后再计算(b+c)+dc语言中具有右结合性的运算符包括所在单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性.

c语言里面结合性是什么意思,

10楼:匿名用户

仔细看了一下你的题目,并且在编译器中运行了一下:

运行的结果如下:

接下来我们解析

内下为什么是这个结果:

1、容++ : 优先级为2,结合规则:自右至左。

2、|| 和 && :优先级分别在12和11,结合规则为:自左至右。

3、++,--是算术运算符,而 ||, && 是逻辑运算符。

4、实际上++x || ++y && ++z;是一个逻辑表达式,整个运算过程遵从的是 || 和 && 的结合规则;而在逻辑的每一个条件中(++x, ++y, ++z),是一个运算表达式。

以上解释如果对你有帮助,请采纳下,谢谢。

c语言中的结合性是怎么回事?

11楼:碧血玉叶花

简单说就是,从表达式右边开始执

行;只有同优先级的运算符才具有结合回性“自左至右”或者答“自右自左”一说。

exp(不同优先级运算符,依据优先级高低进行运算):

int a = 1, b =10, c = 30;

int a = a * b + c;

因为 * 比 + 的运算符优先级高,所以

先计算a * b (先计算左边,未考虑结合性),在计算 10 + c结果是 a = 300

exp(同优先级运算符依据结合性进行运算):

int a, b = 1, c = 8;

a = b = c;

赋值运算符其结合性即为自右向左,即 a = ( b = c), 其结果是 b = 8, a = 8;

(错误答案:自左向右进行结合的话a = 1)

12楼:幸运的做人上人

结合性主要指的是运算符

c语言中的左结合性是什么c语言中算术运算

13楼:匿名用户

int a = 2;

你可以看一下意思是将2赋值给a,向左边走,所以是左结合性。

比如a=b=c;也是向左边走

c语言中的“右结合”是什么意思?

14楼:四舍**入

举个例子

a=b+c+d

=是右结合的,所以先计算(b+c+d),然后再赋值给a+是左结合的,所以先计算(b+c),然后再计算(b+c)+dc语言中具有右结合性的运算符包括所在单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性。

15楼:文化厨子

1、结合性是批在c语言运算符中,如果几个运算符具有相同的优先级时决定先执行哪一个。

2、右结合性,就是在表达式中最右边的操作最先执行,然后从右到左依次执行。比如下面这个表达式:

inta,b=1,c=2;

a=b=c;

是先执行b=c呢?还是先执行a=b。如果按前者,a=结果为2,如果按后者,a的结果为1。

这时候结合性的作用就来啦。所有的赋值符(包括复合赋值)都具有右结合性,就是在表达式中最右边的操作最先执行,然后从右到左依次执行。所以,最后a的值为2。

16楼:匿名用户

表达式若有多个操作符,则操作符是从右向左结合的比如说 a+b+c

如果左结合就是(a+b)+c

如果右结合就是a+(b+c)

17楼:

以上答案都告诉你了

不过不要去使用这种结合

使用括号

将自己所有的运算用括号一步一步的括起来

别人看起来容易

这个是个良好的编程规范

!a&b++*c+d--

上面这个式子估计也就只有考试里能出现

18楼:匿名用户

就是操作符和右边的变量结合,比如++a就是。左结合就比如b++

19楼:

所谓的结合性,只在相同优先级的运算符出现时才能体现出来

c语言中单目运算符,结合性从左到右,分别是什么意思??

20楼:匿名用户

题目都是错的。c语言中单目运算符,结合性从右到左

21楼:匿名用户

单目运算符:只有一个操作数的运算符,如负号。对应的有双目运算符(即需要两个操作数,如除号/,大多为双目)和三目运算符(唯一一个为?表达式)

结合性:是指当一个操作数左右各有一个运算符时,按运算符优先级决定运算次序,当优先级相同时,按结合性决定运算次序。

22楼:lq右边

结合性从左到右,就是运算的顺序是从左到右执行的,先运算左边的再运算右边的,如果结合性从右到左的话,就是运算顺序从右边到左边了

C语言中的左移《和右移》怎样运算的

1楼 云冷宰迎南 移位操作符的两个操作数必须是整型的。整个移位表达式的值的类型也是整型的,而且,左移位操作符与右移位操作符的运算并不对称。 2楼 hunter影 左移 是指向左移动 右移 是指向右移动 具体指的是二进制数平行移动 例如 001101 《2 变化 110100 其他也相同 c程序中 左...

c语言里(21)什么结果,在C语言中(-1)&&(-1)结果是?

1楼 匿名用户 是逻辑与运算,其结果只能是0或1, 当参与运算的两个数中有一个是0,其结果就是02是非0值 1也是非0值 所以, 2 1 的结果是1 在c语言中 1 1 结果是? 2楼 匿名用户 在c或c 中 是与的操作符,只要操作符两边都为真 不为0就为真 ,结果就为真。因为 1的二进制码 1的二...

c语言中fun3int什么意思,c语言中fun3(intx)什么意思

1楼 匿名用户 定义了一个函数fun3里面的形参是整型的x 2楼 恋莘婷 是不是fun3 int x 啊? 这是一个函数,fun3是函数名,x是参数定义,int是参数类型 c语言中fun3 intx 什么意思 3楼 匿名用户 因为不能直接用主函数里的j m,而k跟这两个有关,所以需要把j和m两个变量...