Java数据运算的合法性

  1. 下列表达式中,非法的是     B C   
    int a=5, b=6;  double c=.1,  d=2.2;
    A. a+c+++d       B.(a+c)--        C. c<<b      D. a!=b? c:d

请问有人能解释一下这道题吗?

针对B选项:首先,++或 -- 是针对变量的,(a+c)已经是一个确切的值了,是一个常量,不能进行自增或自减操作,

针对C选项: 位运算符,左移或右移的前提是这个数必须是一个整数,<<表示这个数乘2,>>表示这个数除以2