xmz3060201132 发表于 2012-6-16 18:42:55

请教各位一个语法问题

1、a=5+c+d=a+5
2、a=c+d++=a+5
3、a=5+c,d=a+5


上面3个表达式错在哪里了?有那些方面不符合C语言的语法了,看了好久愣是没看出来。。。。????请高手讲解一下。。。。

bluelucky 发表于 2012-6-16 21:30:44

第1个,5+c+d=a+5,"5+c+d"不能作左值,不知要把值赋给哪个变量,第2个也是一个道理
第3个是正确的表达式,逗号运算符优先级最低,这种写法只是惜纸如金的小聪明了

jpchen 发表于 2012-6-16 21:57:39

第3种表达式一般只在for循环的初始化语句里使用,在单独的语句里不提倡使用。

xmz3060201132 发表于 2012-6-16 23:36:30

bluelucky 发表于 2012-6-16 21:30 static/image/common/back.gif
第1个,5+c+d=a+5,"5+c+d"不能作左值,不知要把值赋给哪个变量,第2个也是一个道理
第3个是正确的表达式, ...

歇歇。我还想问一下,a=(5+b,d++,a+5)这个表达式是否有错误,我自己感觉这句话是正确的。但看一本书上说这句话是有语法错误的。

adce 发表于 2012-6-19 01:46:43

这东西看编译器的心情....不同编译器不一样....大力推广通用的C语言才是正道...
就和你在作文中写道..."路旁有个球,我顺手踢了一脚"一样....有的老师认为对 有的老师认为不对....
a=(5+b,d++,a+5) 和 a = (1,2,3)差不多吧 不会错 但是没意义吧..

millwood0 发表于 2012-6-19 06:44:24

上面3个表达式错在哪里了?

trying too hard to be cute.
页: [1]
查看完整版本: 请教各位一个语法问题