&*x 和 *&p 都是错误的表达。
因为 int x; 没有 *x 形式,只有求地址 &x 形式.
因为 int *p; 没有 &p 形式,只有求指向的值 *p 形式.
可以 有 &*p, 可以 有 *&x. &*p 就是 p, *&x 就是 x.
例如:
int x=8;
int *p=&x;
printf("%d %p %p\n",*&x,&*p, &x);
等同 printf("%d %p %p\n",x,p, &x);
追问哦,谢谢,不过这是期末考试题啊!问哪一个是错误的!
哦,谢谢,不过这是期末考试题啊!问哪一个是错误的!
追答int x,*p=&x则:
&*x 和 *&p 两者都是错误的。
&*p 和 *&x 两者都是对的。
期末考试题 问的是哪2个,你要分清。