A. c语言中运算顺序“至左向右”和“至右向左”是怎么回事
不同的函数 内部的执行 顺序不一样 就像先乘除后加减 一样 ! 至左向右 就是不管表达式是怎么样的 按照从左到右 计算机顺序执行 同理至右向左
B. c语言中运算符的结合方向什么时候从左至右,什么时候从右至左
左结合性:自左至右。
右结合性:自右至左。
一个运算量两侧的运算符优先级相同时,按运算符的结合性所规定的结合方向处理。C语言中各运算符的结合性分为两种,即左结合性和右结合性。
如,算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。
而最典型的右结合性运算符是赋值运算符,如x=y=z,由于“=”的右结合性,应先执行y=z,再执行x=(y=z)运算。
(2)c语言从左往右和从右往左扩展阅读
C语言中的运算符
(1)算术运算符(+,-,*,/,%,++,--)。
(2) 关系运算符(<, >, <=, >=, ==, ![KG-*8]=) 。
(3) 逻辑运算符(!, &&, ||) 。
(4) 位运算符(<<, >>, ~, |, ^, &) 。
(5)赋值运算符(=,及其双目运算符的扩展赋值运算符)。
(6)条件运算符(?:)。
(7)逗号运算符(,)。
(8) 指针运算符(*, &) 。
(9)求字节数运算符(sizeof)。
(10)强制类型转换运算符((类型))。
(11) 分量运算符(·, ->) 。
(12)下标运算符([])。
(13)圆括号运算符(())。
C. 请教c语言等编程语言优先级的问题,对着这个优先级的表看得不是很明白,有的从左往右,有的从右往左
运算符涉及到优先级和结合性问题,”从左往右“和”从右往左“说的是运算符的结合性。优先级决定表达式中各种不同的运算符起作用的优先次序,而结合性则在相邻的运算符的具有同等优先级时,决定表达式的结合方向。可以这样理解:
首先,表达式中得有多个运算符,这样就存在左右两边都有运算符的操作数:
1 如果这个操作数两边的运算符优先级不同,则这个操作数属于优先级高的那个运算符,它优先参与优先级高的运算符表示的运算;
2 如果这个操作数两边的运算符优先级相同,则这个操作数属于左右那个运算符,就要看着两个运算符的结合性了(注意,相同优先级的运算符必然有相同的结合性,否则此处就出现bug了),如果运算符结合性是”从左到右“,则操作数属于左侧的运算符,就是说运算符是从左侧开始处理的;如果结合性是”从右到左“,则操作数属于右侧的运算符,这两个同优先级的运算符右侧的先处理。
结合性举例:
(1) a + b - c
b就是前面说的两边有两个相同优先级的操作数,+ 和 - 的结合性是”从左到又“,所以 + 先处理,- 后处理。
(2) a = b = c
b两边有两个相同优先级的运算符,= 结合性是”从右到左“,所以右侧的 = 先处理,a = b = c 等价于 a = (b = c);同理,a = b += c 等价于 a = (b += c),因为 + 和 += 是相同优先级的。
(3) *p++
p左右的两个运算符优先级相同,但都是”从右到左“结合性,所以这样理解:*(p++)。
D. 这是两个C语言的题,但是第一个表达式的运算顺序是从左到右,第二个表达式的运算顺序是从右到左
这是我的运行结果,首先,先回答运算符优先级的问题,
++后缀的优先级是要高于 小括号 (),还有++前缀的优先级的
++后缀 > 小括号 > ++前缀
所以运行结果是先算后缀,然后i++是先运算,会把数字3放在第一个乘号前面,然后i自增变成4,执行第二个++后缀,算式进一步写成3 × 4,并且i因后自增,变成5,接下来就是最后一个++前缀,是要先自增再运算的,此时的i的值为5,自增变成6,所以算是进一步写成3 × 4 × 6
结果是72,以上是本人自己观点,并且查询了很多资料得出的结论,仅供参考,欢迎讨论~
E. C语言的运算符的优先级是什么
1、最高级:出现同级别运算符时的结合方向是从左往右(下面级别没写结合顺序时,默认是从左往右)。
( )圆括号
[ ]下标运算符号
->指向结构体成员运算符
.结构体成员运算符
F. C语言中,什么情况下从左向右运算什么情况下从右向左运算是不是还有左右顺序的读取问题菜鸟!菜鸟!
这个要看运算符的优先级了,在同级的情况下,双目运算符都是左结合(从左向左运算),三目运算符都是又结合(从右向左运算);不同级情况下,先算级别高的。
G. C语言中哪些运算是由左向右结合哪些是右向左结合请详细说明并解释下下面的题
x=1,y=x+3/2的值是? 答案为:2
先计算3/2,由于是整形计算,结果为1(整型数据);而后,x+1,因为x为浮点数据,所以计算结果结果为2(浮点型数据)。
优先级 运算符 结合性
(最高) () [] -> . 自左向右
! ~ ++ -- + - * & sizeof 自右向左
* / % 自左向右
+ - 自左向右
<< >> 自左向右
< <= > >= 自左向右
== != 自左向右
& 自左向右
^ 自左向右
| 自左向右
&& 自左向右
|| 自左向右
?: 自右向左
= += -= *= /= %= &= ^= |= <<= >>= 自右向左
(最低) , 自左向右
H. c语言中逗号运算符是从左向右算,还是从右向左算啊
int a ;
a = 2 * 3, 4 * 5;
首先计算2*3,结果是6
接着计算a = 6(因=优先级大于,)
接下来计算4*5,结果是20
20是整个逗号表达式的值
-------------------------
由左向右运行,最后的表达式的值是整个逗号表达式的值