A. a=(a++)%4:这个赋值表达式在将a的值与4取模之后再赋值给a,但是在C语言中,后置自增运算符会先使用a当前的值进行运算,然后再将a的值加1,因此这个表达式是未定义的行为。选项A是错误的。
B. a+2=3:这个表达式试图将表达式a+2的结果赋值给一个常量3,这是不允许的。选项B是错误的。
C. a+=256--:这个表达式试图将a的值加上256--的结果,但是256--表达式是再赋值运算之前减去1,它的结果是256。然而,在C语言中,char类型的取值范围是-128到127,因此无法将256赋值给char类型的变量a。选项C是错误的。
D. a='\078':这个表达式给变量a赋值的是一个八进制值'\078',八进制的数值范围是0到7,因此'\078'在八进制表示中是无效的,但在C语言中,它会默认为八进制转义字符,因此这个表达式等价于a='O'。选项D是正确的。
登录后提交答案