C语言问题不会做了求帮

若有定义“int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;”,则数值不为3的表达式是

 

A.x[3]

B.p1=x+3,*p1++

C.p1=x+2,*(p1++)

D.p1=x+2,*++p1

C,

C选项*(p1++)时运算时的p1为x+2,然后输出*(x+2),这个语句运行完之后p1变成了x+3

B选项时*p1++中,先算*p1的结果,即为3,然后3++,但是此时是输出3,再++

D选项中*++p1相当于*(++p1),先p1++即p1 = x+3,然后*(x+3)

 

选C   p1=x+2,*(p1++)   p1=&x[2]= 2  后 ++

A  x[3] =3;

B  p1=x+3,*p1++   p1=&x[3] =3   后 ++ 

D p1=x+2,*++p1    p1=&x[2] ++ 在前   *++p1 =3