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输出不同, 为什么?
{
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