赋值语句的合法性

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:50:39
以下非法的赋值语句是()
a)n=(i=2,++i);
b)j++
c)++(i+1);
d)x=j>0;
就详解原因

C不对
A项是逗号表达式,会把++i的结果做为这个表达式的值赋给n 所以n最后是3
B项就是 j自增1 是合法的表达式
D项 前提是应该已知j的值了 然后 表达式 j>0 是真的话 x就等于1 假的话就是0

C项中 如果已知i值 那(i+1) 这个表达式的值 将会是 一个常量 而不是一个变量, 而++ 这个运算符只能对变量进行运算, 常量是不能自增的!

b选项
j ;为j=j 1;这是一个正确表达式,但因为b选项中缺少分号,所以其他不用考虑,选b

a 错误
b 相当于j=j+1;
c i+1之后再+1
d j的值赋给x之后判断是否大于0,如果成立,该语句为真,如果不成立,该语句为假

c i + 1不是左值

赋值语句必须作用于一个有明确空间关联的量上...

答案是C.因为++ --运算只能作用于变量,不能用于表达式.如以下形式都是不允许的:
X=(i+j)++;
10++;
(5*8)++;