以下选项中,合法的赋值语句是( )。

以下选项中,合法的赋值语句是( )。
A a=1,b2;
B ++i;
C a=a+1=5;
D y=int(x+4);

y=int(x+4);

回:vbtraz
1.不要乱说,c 中为什么有“赋值语句”这个概念
2.至少a=a+1=5;就不合法,a+1不是左值(有效变量)

回:vbtraz
定义和概念可不能完全等同
C是没有“赋值语句”的定义,因为根本不需要一个严格的定义。
但C中是有“赋值语句”这个概念(或者说这个说法的)
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-12
这题就不“合法”。。 c语言根本没有“赋值语句”这个概念

关于这一点,找个语法书去看看C的BNF,里面哪找的着“赋值语句”的定义? 从分析语句对应的BNF, 在c里面赋值这件事情跟加减乘除一样属于“表达式”的一部分, 而表达式是单独构成语句的。 a+1; 这个语句和 a=1; 这个语句在语法上的合法性都是这么来的。

就语法来说 C选项不合法,其他都合法
第2个回答  2009-04-18
答案
A:逗号表达式
B:自增
C:嘿嘿。不知道写什么
D:把x+4的值强制转成int型。
相似回答