作业帮 > 综合 > 作业

若变量x、y 已正确定义并赋值,以下符合C 语言语法规则的语句是( ) 选择一个答案 a. ++x, y = x--;

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/06 17:46:37
若变量x、y 已正确定义并赋值,以下符合C 语言语法规则的语句是( ) 选择一个答案 a. ++x, y = x--; b. x
若变量x、y 已正确定义并赋值,以下符合C 语言语法规则的语句是( )
选择一个答案

a. ++x, y = x--;

b. x + 1 = y;

c. x = x + 10 = x + y;

d. double(x)/10;
答案d
a:不能用逗号
b:左操作数必须为变量
c:同上
再问: a 的逗号没有违规呀
再答: ++x是一条独立的语句啊。 int x=1,y=1; ++x, y=x--; 怎么没违规啊.
再问: z = x++, y++, ++y; 这种情况为啥可以取值? 你的意思是不是:可以违反规则,但不影响运行?
再答: 我对C语言中逗号的理解还不行,看下边的: 在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。 假设b=2,c=7,d=5, a1=(++b,c--,d+3); a2=++b,c--,d+3; 对于第一行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3,为8,所以a1=8。 对于第二行代码,那么也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)所以最终表达式的值虽然也为8,但a2=3。 逗号运算符的优先级最小 a有可能也对- -!。
再问: 虽然违反语法规则,但是不影响运行吧?
再答: 不影响的