若有语句:int *p,a=10 p=&a;下面均代表地址的一组选项是

A. a, p, *&a B. &*a, &a, *p C.*&p, *p, &a; D. &a, &*p, p 选D,为什么
2024-07-27 23:23:23
推荐回答(2个)
回答(1):

p是指针, a是变量。 所以 &a, 或者薯伏p,或者&p, 都是地址。
A里面 a不是地址。 *&a等效于a 也不是地址 。
B里面 *a本身局做就是非法的。 &*a属于非法表达式。 *p是值,不是地址。
C里面 *p不是地址,桐手衡而是值。 注意 *&p 等效于p, 这个是地址。
D里面 &a &*p和p都是地址。 这里 &*p等效于p。

回答(2):

int *p 是定义一个指针,p=&a ,p指向a的地址蚂简,*p=a, *指针名 是指取该指针如物键所指地址中的内容渣巧,
&a 为a的地址,&*p=&a,p中放的为a 的地址