int x = 2;
int y=8;
int* p = &x;
*p=y;
cout << p <<endl;
我的问题是:为什么我打印p时得到的是内存地址,而不是实际值,因为我已经在第4行中取消了引用
cout << *p << endl;
就是你所需要的。当您尝试将某个内容输出到stdout时,编译器会自动推断其类型并调用相应的函数。在您的情况下,p是指针类型,因此会打印地址,并且由于*p是int类型,如果要打印值,则应该使用*p。
我认为您对取消引用指针有误解。
。。。因为我已经在第4行中取消了引用
取消引用意味着检索指针所指向的值。它不会以任何方式更改指针本身。CCD_ 1仍然是在CCD_ 2之后的指针。
*p=y
所做的只是更改p
所指向的值,而不是更改指针本身。