int a=5,*ap=&a ;则下列表达式错误的是:

A.
&*ap 相当于&a

B.
*&a 相当于ap

C.
(*ap)++ 相当于a++

D.
*ap++ 是合法访问
麻烦详解各个选项,谢谢!
int a=5,*ap=&a ;则下列表达式错误的是:

A.
&*ap 相当于&a

B.
*&a 相当于ap

C.
(*ap)++ 相当于a++

D.
*ap++ 是合法访问
麻烦详解各个选项,谢谢!
&和*是逆运算,能互相抵消。&取址,*取值。
所以AB很明显了,
然后,运算符优先级,向右的结合顺序*ap++,先计算ap++,然后*,加()后()的优先级比++高,所以先计算*ap
此外地址的计算加减无法访问到正确的值,但本身并没有错。