2016 - 2024

感恩一路有你

c语言逗号表达式规则 c语言赋值语句规则?

浏览量:3275 时间:2021-03-12 09:30:53 作者:admin

c语言赋值语句规则?

由于赋值字符“=”右侧的表达式也可以是另一个赋值表达式,因此下面的形式变量=(variable=expression)为真,从而形成嵌套情况。展开后的一般形式是:variable=variable==表达式,例如:a=b=C=D=e=5,根据赋值运算符的右联接等价于:e=5,D=e,C=D,b=C,a=b]。请注意将初始值赋给变量和variable==description=中的赋值语句之间的区别。将初始值赋给变量是变量描述的一部分。具有初始值的变量和其他类似变量必须用逗号分隔,而赋值语句必须以分号结尾。例如:int a=5,B,C

在变量描述中,不允许连续给多个变量赋值。如果以下描述错误:int a=b=C=5必须写成int a=5,b=5,C=5,赋值语句允许连续赋值。

注意赋值表达式和赋值语句之间的区别。赋值表达式可以出现在任何允许表达式出现的地方,但赋值语句不能出现。

以下语句是合法的:

if((x=y5)>0)z=x

这里(x=y5)是赋值表达式。该语句的功能是,如果表达式x=y5大于0,则z=x。

在C语言赋值语句中,给多个变量赋值,用逗号隔开,岂不是相当于一个逗号表达式?

我无法理解。逗号表达式是声明变量的合法组合。多个有效的运算表达式用逗号分隔,而int a=1,B=2只能有一种解释,即在声明和初始化变量时,同一类型的多个变量可以用逗号分隔,写在同一类型字符之后,最后用分号结束。对于上面的声明,如果声明一个int c,那么c=(a=1,B=2)在运算之后,c=2,因为(a=1,B=2)在最右边的逗号之后取表达式的运算结果。所以,我认为C=(a=1,B=2)中的(a=1,B=2)是逗号表达式,int a=1,B=2不是逗号表达式!事实上,所谓计算机语言的“语法”只是一些书写规则。还有许多甚至是不灵活的,比如char*P和*Q。语法上说,*属于char,但不属于下面的变量。但是如果它被写成char*P和Q,那么Q就不被认为是指针。我们怎么能理解呢?否则,像char*P,W,x这样的语句将被写成两行:char*PChar,W,x

在C语言中,多个表达式可以用逗号分隔,其中用逗号分隔的表达式的值是分开结算的,但是整个表达式的值是最后一个表达式的值。假设B=2,C=7,d=5,A1=(B,C--,d3)A2=B,C--,d3。对于第一行代码,有三个表达式用逗号分隔,因此最终值应该是最后一个表达式的值,即d3是8,因此A1=8。对于第二行代码,还有三个表达式。此时,三个表达式是A2=B,C--,d3(这是因为赋值运算符的优先级高于逗号运算符),因此最终表达式值是8,但A2=3。逗号运算符的优先级最低

c语言逗号表达式规则 c语言中逗号语句 c语言中逗号表达式怎么算

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。