关于赋值语句的正误判断(语言-c语言)

下列语句中符合C语言语法的赋值语句是()
A:a=7+b+c=a+7;
D:a=7+b++=a+7;
C:a=7+b,b++,a+7;
D:a=7+b,c=a+7;

答案是D,为啥啊?

没有上下文,不好判断C和D到底哪个对
A和B是肯定错误的了,你只能赋值给一个变量,而不能赋值给一个表达式,表达式是只读的
C和D都是逗号表达式,不同之处在于C选项右式是个逗号表达式,而D选项整个是个逗号表达式
C选项唯一的问题是它等价于a=a+7,如果a没有赋初值的话这样用肯定是不对的
但是D里如果b没有初值也一样不对
这题很不严谨,不要太较真

A B(D)。,这俩问题一样对常量赋值,7+b+c=a+7,7+b+c的运算结果是个常量,为不可修改的左值,7+b++还是常量,
D a,c都是变量,可以