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

c语言运算符结合性的意思

发布时间: 2022-04-25 09:01:56

A. c语言中:和!是什么意思,怎么运用在编程中

?:的意思是条件运算符,使用的格式如下(条件)?A:B,如果条件成立,表达式的值就是A,否则是B。

!的意思是用来取非运算的,!true的结果就是 false !false 的结果是 true。

写程序中,?:用的比较少,!主要用在条件判断中。

比如

int a=9,b=8;

a>b?a=8:b=9;//就是这句

相当于if语句,问号前面的表达式为真的时候执行a=8,否则b=9。

(1)c语言运算符结合性的意思扩展阅读:

结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。

如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。

如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

B. c语言中,!(--x)什么意思

C语言运算符,括号里面(---x)表示x的值减去1,相当于“x”变为“x-1”,括号外面“!”表示取反(非0数变为0,0变为1)。

除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。



(2)c语言运算符结合性的意思扩展阅读


优先级,C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。

而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

另外在C语言里,没有前置后置之分,因为++ -- 是右结合所以右侧优先运算,表现为 "操作数后置优先级比较高" 的假象,前置和后置的区分是因为运算符重载而后加入C++的

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

C. C语言 运算符 的结合性 怎么理解求举例子详细解答!!

关于C语言运算符的结合性内容还是比较多的,可以分享给你几个链接,里面对这个问题讲的还是比较清楚的,也有相应的实例,如下:
http://blog.chinaunix.net/uid-1924596-id-3049989.html
http://wenku..com/link?url=_9GNaTgaQPf_
希望能帮到你。

D. C语言运算符的结合性

结合性是规定运算符与运算数组合成表达式的结合方向。因为运算符是有优先级别的,表达式的运算应该是先按运算符的优先级由高到低的顺序,结合运算数进行计算,当遇到同级别运算符或者是符号一样但运算目数不同时,就要用到运算符的结合性。
例如:X=-B+C 或 X=A-B+C与X=A-B*C两个表达式计算时是这样的

对于X=-B+C,表达式运算时是这样的,先数据栈读入X,符号栈读入=(赋值运算符),因为=是双目运算符,还要读入数据,所以继续向后读表达式;又读到-号,不是数据,而且-号的运算级别高于=号,所以-号进入符号栈,继续向后读表达式,读到数据B进入数据栈,这时候-B就符合负号运算符的自右向左结合的单目运算,就进行求值运算,符号栈中-号出栈,与数据栈中B结合成-B,-B就变为一个新的运算数据进入数据栈;后面继续读入+号,它是双目运算符后面还要读入一个运算数据,C就读入了数据栈,后面没有运算符再读入,表达式结束,那么就进行符号栈+号和数据栈中C和-B的值相加,将结果存入数据栈中,符号栈中+出栈;符号栈中还有=号,它和数据栈中的结果与X形成赋值的自右向左双目结合运算,表达式的结果就此运算完毕。
对于X=A-B+C与X=A-B*C两个表达式计算时,前面X=A-B过程是相同的,只是后面,由于*号比+号的运算级别高,所以表达式X=A-B*C中要先算B*C的结果,在一步一步回退进行A-和X=的运算。而表达式X=A-B+C中+号与-同级别,所以当满足运算条件时就先进行A-B运算,然后进行+C和X=的运算。
不知道以上的说明,是否能让你明白C语言中运算符结合性和表达式求值的过程。

E. c语言运算符结合性

c语言中右结合的运算符有:
(1)!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符
(2)?
:条件运算符
(3)=、
+=、
-=、
*=、
/=、
%=、
&=、
^=、
|=、
<<=、
>>=赋值运算符

F. C语言中的结合性是怎么回事

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

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

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)

G. C语言中的“右结合”是什么意思

举个例子

a=b+c+d

=是右结合的,所以先计算(b+c+d),然后再赋值给a

+是左结合的,所以先计算(b+c),然后再计算(b+c)+d

C语言中具有右结合性的运算符包括所在单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性。

(7)c语言运算符结合性的意思扩展阅读:

c语言中的左结合右结合

a<b<c中的<是左结合的,也就是从左向右计算的,所以23<59<2的值为1,而23<59<0的值为0;

但是=是右结合的,如果一个表达式中出现多个=号,不是从左到右计算而是从右到左计算,例如 total=total_minute=hour*60+minute,计算的顺序是先算hour*60+minute,得到一个结果,然后算右边的等号,就是把计算结果赋给变量total_minute,在算左边的等号,即把这个值赋给变量total。

H. 有关C语言中运算符的结合性是什么意思啊

左结合++、--运算优先级最高,先进行变量的加(减)1运算,在进行剩余运算
右结合++、--运算优先级最低,最后对变量进行加(减)1运算

看下面的例子:
int a,b,c=1;
a=c++;/*先运算a=c,再运行c=c+1,最终结果:a=1,c=2*/
b=++c;/*先运算c=c+1,再运行b=c,最终结果:b=3,c=3*/

I. 如何理解C语言的左结合 和右结合性

指的是程序在计算时的计算顺序,比如算 1+2+3+4
左结合性:
1+2+3+4 =
3+3+4
6+4
10
而右结合性是相反的。
当然计算的顺序跟运算符号的优先级有关,先优先级再考虑结合性。