有int main(){using namespace std;int *p=NULL;cout<<&p<<endl;cout<<p<<endl;return 0;}1、虽然空指针不指向有效数据 但是是有空间来存储空指针的吗、?2、是不是因为空指针不指向有效数据 所以 cout<<*p;是错的呢?、3、cout<<p;输出的是0 代表的是p指向的空间是0吗?
2 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
#include <iostream>
int main() {
using namespace std;
int *p = NULL;
cout << &p << endl; // &p是存放指针p的地址
cout << p << endl; // p指向的地址
cout << *p << endl; // p指向NULL,也就是0,显示地址0单元的内容会出错,原因是该地址不能读/写
return 0;
}
追问
C++能确保空指针不会指向有效数据么?
追答
指向NULL就是指向“空”,因为地址0不是普通用户所能操作的地址单元,含地址0在内,内存(含ROM)归操作系统所用。
- 2 回答
- 0 关注
- 738 浏览
添加回答
举报
0/150
提交
取消