#include <iostream>
using namespace std;
int main() {
int *p = new int(55);
cout << "输出p为" << p << endl;
cout << "输出*p为" << *p << endl;
return 0;
}
输出p为0x7fa3aac00020
输出*p为55
new int(55)
给 p
分配了内存 0x7fa3aac00020
, 指针 *p
指向该内存中的值 55
。这样理解是否正确。
是p指向了 new int(55)被分配的内存的地址 0x7fa3aac00020
一定要注意new int(55)不是给p分配了地址,实际上p有自己的地址,可能是1、2...0x7fa3aac00019,p的地址里面存的是 new int(55)被分配的内存的地址 0x7fa3aac00020
*p取出此地址里的值