A、C都是非法的!A——p1+(p1-p2)的结果是char *型,20是int型,等号两边类型不匹配,非法。C——*(p1-2+p2)可以分开写成*(p1=p1-2,p1+p2),其中p1+p2非法,两个指针不能+运算,只能-运算。
难道非法的不是a?