a=a+1=3符合c语言语法吗

Python012

a=a+1=3符合c语言语法吗,第1张

a=a+1=3不符合c语言语法。根据查询相关公开信息,右值不能自加a+1的结果也是右值,不能将3赋给右值。D也不符合语法,只有整型数才能进行求余运算(%)。B是逗号表达式,相当于(a=3),5是符合语法的。

因为(前有个f,说明这是调用函数f的表达式,而函数

形参

计算顺序是从右至左的,所以最后a==1。如果没有f,那就是一般的

逗号表达式

,从左至右计算并取最右边的分表达式的值为整个表达式的值,这就不仅最后a==3,而且整个()的取值也是3。

前者,a=a+++1被编译器解释为:

a=a+1//a=1+1=2

a++//a=2+1=3

后者,a+++1被编译器解释为:

a+1//虽然做了1+1=2运算,但没有赋给a,a仍为1

a=a+1//a=1+1=2