当前位置:首页 » 编程语言 » c语言优先性和结合性
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言优先性和结合性

发布时间: 2022-04-19 03:39:43

A. c语言运算符优先级与结合性

y++是先对y做相关运算(x-y),然后再++,所以这边实际上是先计算x-y = -10,然后y再++,所以k=-10

B. C语言中优先级和结合性 例如:*p++

*p++,由于++和*的优先级相同,结合方向为自右至左。所以确实*p++等价于*(p++),而p++其实取值的时候还是取p的,是用过之后才能+1。所以*(p++)就是先执行p++得到p,然后执行*p,得到p指向的值,等这个运算结束了才能+1。你的那个理解应该是对于*(++p)的!

C. c++运算符的优先结合

从上面的逗号运算符那个例子可以看出,这些运算符计算时都有一定的顺序,就好象先要算乘除后算加减一样。优先级和结合性是运算符两个重要的特性,结合性又称为计算顺序,它决定组成表达式的各个部分是否参与计算以及什么时候计算。
下面是C语言中所使用的运算符的优先级和结合性:
优先级 运算符 结合性
(最高) () [] -> . 自左向右
! ~ ++ -- + - * & sizeof 自右向左
* / % 自左向右
+ - 自左向右
<< >> 自左向右
< <= > >= 自左向右
== != 自左向右
& 自左向右
^ 自左向右
| 自左向右
&& 自左向右
|| 自左向右
?: 自右向左
= += -= *= /= %= &= ^= |= <<= >>= 自右向左
(最低) , 自左向右

D. C语言 优先和结合性

同级运算按次序进行

E. c语言优先级是什么

c语言优先级是:每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。

当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。

各种运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。

优先级结合性:

当一个运算对象两侧的运算符优先级别相同时,则按运算符的结合性来确定表达式的运算顺序。关于结合性的概念在其他高级语言中是没有的,这是C语言的特点之一。在标准C语言的文档里,对操作符的结合性并没有做出非常清楚的解释。

C语言也将34种运算符规定了不同的结合性。大多数运算符结合方向是“自左至右”,即:先左后右,也叫“左结合性”

例如 a-b + c,表达式中有-和+两种运算符,且优先级相同,按先左后右结合方向,先围绕减号结合,执行a-b的运算,再围绕加号结合,完成运算(a-b) + c。除了左结合性外,C 语言有三类运算符的结合方向是从右至左,也叫“右结合性”

以上内容参考:网络-运算符优先级

F. C语言运算的优先级别和结合方向表是什么的

优先级和结合性
C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。
而在一个运算量两侧的运算符优先级相同时,
则按运算符的结合性所规定的结合方向处理。
C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,
执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。
最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。
C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
运算符的种类C语言的运算符可分为以下几类:
1.算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、
大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?:)。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)二种运算。
9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→,.)等几种。

G. c语言中的运算符优先级和结合性

初(1)、单(右结合)(1)、算(3)、关(2)、逻(5)、条(右结合)(1)、赋(右结合)(1)、逗(1);(未注明的未左结合)共15级初级1、() 圆括号、[] 下标运算符 、-> 指向结构体成员运算符、. 结构体成员运算符 单目运算 2、 ! 逻辑非运算符 、~ 按位取反运算符、++ 前缀增量运算符 、-- 前缀增量运算符、+ 正号运算符、- 负号运算符 、(类型) 类型转换运算符 、* 指针运算符 、& 地址与运算符 、sizeof 长度运算符
算术运算符 3、* 乘法运算符 、/ 除法运算符 、% 取余运算符 4、+ 加法运算符 、- 减法运算符 5、<< 左移运算符 、>> 右移运算符
关系运算符、 6、<、<=、>、>= 7、== 等于运算符、!= 不等于运算符
逻辑运算符、 8、& 按位与运算符 9、^ 按位异或运算符 10、| 按位或运算符 11、&& 逻辑与运算符 12、|| 逻辑或运算符 条件运算符13、 ? : 条件运算符 赋值运算符14、 = 、+=、 -= 、*=、 /= 、%=、 &=、 ^=、 |=、 <<=、 >>= 逗号运算符 15、 ,

H. C语言中运算符的结合性是判断在多个优先级相同的表达式中运算的先后,能否出现优先级相同但是结合性不同

在标准c语言的文档里,对操作符的结合性并没有作出非常清楚的解释。一个满分的回答是:它是仲裁者,在几个操作符具有相同的优先级时决定先执行哪一个。
每个操作符拥有某一级别的优先级,同时也拥有左结合性或右结合性。优先级决定一个不含括号的表达式中操作数之间的“紧密”程度。例如,在表达式a*b+c中,乘法运算的优先级高于加法运算符的优先级,所以先执行乘法a*b,而不是加法b+c。
但是,许多操作符的优先级都是相同的。这时,操作符的结合性就开始发挥作用了。在表达式中如果有几个优先级相同的操作符,结合性就起仲裁的作用,由它决定哪个操作符先执行。像下面这个表达式:
int
a,b=1,c=2;
a=b=c;
我们发现,这个表达式只有赋值符,这样优先级就无法帮助我们决定哪个操作先执行,是先执行b=c呢?还是先执行a=b。如果按前者,a=结果为2,如果按后者,a的结果为1。
所以赋值符(包括复合赋值)都具有右结合性,就是说在表达式中最右边的操作最先执行,然后从右到左依次执行。这样,c先赋值给b,然后b在赋值给a,最终a的值是2.类似地,具有左结合性的操作符(如位操作符“&”和“|”)则是从左至右依次执行。
结合性只用于表达式中出现两个以上相同优先级的操作符的情况,用于消除歧义。事实上你会注意到所有优先级相同的操作符,他们的结合性也相同。这是必须如此
的,否则结合性依然无法消除歧义,如果在计算表达式的值时需要考虑结合性,那么最好把这个表达式一分为二或者使用括号

I. C运算符的优先级与结合性

1级(左结合)
() 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符.。
2级(右结合)
!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。
3级(左结合)
*乘法运算符;/除法运算符;%取余运算符。
4级(左结合)
+加法运算符;-减法运算符。

5级(左结合)
<<左移运算符;>>右移运算符。
6级(左结合)
<、<=、>、>=关系运算符。
7级(左结合)
==等于运算符;!=不等于运算符。
8级(左结合)
&按位与运算符。
9级(左结合)
^按位异或运算符。
10级(左结合)
|按位或运算符。
11级(左结合)
&&逻辑与运算符。
12级(左结合)
||逻辑或运算符。
13级(右结合)
? :条件运算符。
14级(右结合)
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。
15级(左结合)
,逗号运算符。

J. c语言优先级是什么

c语言优先级是:

每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。

当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。

各种运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。

优先级结合性:

当一个运算对象两侧的运算符优先级别相同时,则按运算符的结合性来确定表达式的运算顺序。关于结合性的概念在其他高级语言中是没有的,这是C语言的特点之一。在标准C语言的文档里,对操作符的结合性并没有做出非常清楚的解释。