C++引用指针问题!

来源:百度知道 编辑:UC知道 时间:2024/06/17 05:37:46
int main()
{
int *a;
*a=9;

int *&p=a;
cout << *&p <<endl;
cout << *p <<endl;
}

问题: *&p, *p输出不同, 为什么?

*&p输出的为a的地址
*p输出的为a的值

这个理论上是输不出来的,因为int *a;这一句表示你定义了一个指针,但是注意,并没有赋值,也就是说这个指针目前是一个野指针,而*a=9是在给这个指针所指向的那个地址空间赋值,这就会出错。

改正"野指针"后,结果如一楼所说。

*号是返回指针所指的数据
&是取数据的地址;

&取地址
*指地址指向
第一个输出的是p的地址后者是输出p