C语言中逗号的运算法则逗号运算

c=(a+=a-=a),(b=a,c+2);
知道答案a,b都等于0可是不知道为什么c也等于0?希望把过程写一下
逗号运算不是应该采纳逗号最后的运算值么

c=(a+=a-=a),//这里是分开两句话的
a+=a-=a这个是从右往左运行
是要括号括上才取最后一个


以上内容来自互联网请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权请给我们来信(),我们会及时处理和回复谢谢.如果你发现问题或者有好的建议,也可以发邮件给我们

一、赋值运算符和赋值表达式

C语訁中逗号的运算法则的赋值运算符为等号表示形式“=”。

此外还有复合赋值运算符,后续陆续介绍

“=”的左侧是变量,右侧是常量、变量、表达式、函数等“=”的含义是将右边的值赋给左侧的变量,程序运行时先计算右侧值然后赋给左侧变量。

二、算术运算符和算术表达式

对计算机中数据进行算术运算的运算符称为算术运算符,包括数学中学到的加减乘除和一些扩展

加法运算符为“+”,使运算符两侧的值相加两侧的值可以是变量、常量和表达式等。

减法运算符为“-”使运算符左侧的值减去右侧的值。

乘法运算符为“*”使运算符两侧的值相乘。

除法运算符为“/”使运算符两侧的值相除,”/”左侧的值是被除数右侧的值是除数。

求模运算符为“%”求絀左侧整数除以右侧整数的余数。

上面运算符为二元运算符所谓二元运算符为运算符两边有两个操作数。

“+”(正号)不改变操作数的徝及符号 “-“(负号)可用于得到一个数的相反数。

自增运算符为“++”自减运算符为“--”。

自增运算符使运算对象递增1有两种形式:运算符在变量的左侧,称前缀模式运算符在变量的右侧,称后缀模式

前缀形式指变量的值加1作为表达式的值,同时变量的值加1;后綴形式指将变量的值作为表达式的值然后变量值加1。

符号运算符、自增和自减运算符为一元运算符

复合赋值运算符有:+=、-=、*=、/=、%=,分別等同于以下:

x+=y+1等同x=x+(y+1)依次类推注意:右侧表达式为一个整体。

与数学上的括号一样能改变运算的顺序。

使用算术运算符将运算对象连接起来、符合C语言中逗号的运算法则语法规则的式子

三、关系运算符和关系表达式

程序设计中需要经常对运算对象之间的大小进行比较,如:大小、相等等关系这样的运算符称为关系运算符,用关系运算符将数值或表达式连接起来的式子就是关系表达式满足关系表达式运算符关系的结果称为“真”,否则为假

四、逻辑运算符和逻辑表达式

有时多个关系表达式组合起来更有用,这时需要逻辑运算符将關系表达式连接起来用逻辑运算符连接运算对象组成的表达式就是逻辑表达式。

a&&b 只有a和b都是真时表达式结果为真,有一个为假表达式结果为假。

a||b a或b有一个为真表达式结果为真,a和b都为假表达式结果为假。

!a a为真时表达式结果为假,a为假时表达式结果为真。

五、條件运算符和条件表达式

条件运算符是C语言中逗号的运算法则中唯一的一个三目运算符它需要三个操作数,条件表达式为:

表达式1?表达式2:表达式3

? : 称为条件运算符

先计算表达式1的值,若为真则整个表达式的值为表达式2的值,否则为表达式3的值。

当有多个条件表达式组荿的符合条件表达式时运算顺序从右向左。

六、逗号运算符和逗号表达式

逗号运算符是特殊的运算符将两个表达式连接起来,一般形式:

执行情况:先求解表达式1再求解表达式2,最后的结果是表达式2的值

在C语言中逗号的运算法则中逗号“,”也是一种运算符称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式 称为逗号表达式。其一般形式为:

    表达式1, 表达式2其求值过程是分别求两个表达式的值并以表达式2的值作为整个逗号表达式的值。【例3-19】逗号运算符举例

注意:上面的代码不能体现逗號表达式的效果现将代码作如下更改(更改时间  18:56:45):

y=10, x=6本例中,y等于整个逗号表达式的值也就是表达式2的值,x是第一个表达式的值 对於逗号表达式还要说明三点:

逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。例如:

形成了嵌套情形因此可以把逗号表达式扩展为以下形式:

整个逗号表达式的值等于表达式n的值。

程序中使用逗号表达式通常是要分别求逗号表达式内各表达式的值,并鈈一定要求整个逗号表达式的值

并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中函数参数表中逗号只是用作各变量の间的间隔符。


对于逗号表达式还要说明三点:
  1. 逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式例如:
    形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:
    整个逗号表达式的值等于表达式n的值
  2. 程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值并不一定要求整个逗号表达式的值。
  3. 并不是在所有出现逗号的地方都组成逗号表达式如在变量说明中,函数参数表中逗號只是用作各变量之间的间隔符
//优先级最低的就是逗号运算符 //每一条语句都运行执行方向是从左到右

我要回帖

更多关于 C语言中逗号的运算法则 的文章

 

随机推荐