12. 若定义:int a,*p=&a; 则a与下列表达式 B 等价。请问ACD哪错了? A) p B) *&a C) *&p D)&*a

如题所述

1、在*p=&a中,&a表示a这个变量的存放地址,然后把这个地址放到p这个变量中,所以p是一个指针变量(用*p表示),所以,打印出来的p仅仅是存放a的一个地址,而不是a变量本身。所以,A)是错误的。
2、*&a先是指向a的地址,再用指针指向这个地址,当然还是变量a本身。其实,任何变量的“*&(变量名)”都是指的这个变量本身,如:*&a就是a,*&p也与p完全等价,即:*&a==a,*&p==p是恒成立的。这也就说明了B)是正确的,C)是错误的。
3、&*a这样的写法根本不知所以然,没有任何意义。所以D)也是错误的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-03
p中是a的地址,不对
*&p结果也是p,同a,所以不对
相似回答