C++ 关于空指针


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吗?

有只小跳蛙
浏览 739回答 2
2回答

慕尼黑的夜晚无繁华

空指针的定义和理解:真正的空指针是说,这个指针没有指向一块有意义的内存,比如说:char* k;这里这个k就叫空指针。并未让它指向任意地点。又或者char* k =&nbsp;NULL;这里这个k也叫空指针,因为它指向NULL也就是0,注意是整数0,不是'\0'。一个空指针我们也无法对它进行取内容操作。空指针只有在真正指向了一块有意义的内存后,我们才能对它取内容。也就是说要这样k = "hello world!";这时k就不是空指针了。

蝴蝶刀刀

#include <iostream>int main() {&nbsp; &nbsp; using namespace std;&nbsp; &nbsp; int *p = NULL;&nbsp; &nbsp; cout << &p << endl; // &p是存放指针p的地址&nbsp; &nbsp; cout << p << endl;&nbsp; // p指向的地址&nbsp; &nbsp; cout << *p << endl; // p指向NULL,也就是0,显示地址0单元的内容会出错,原因是该地址不能读/写&nbsp; &nbsp; return 0;}追问C++能确保空指针不会指向有效数据么?追答指向NULL就是指向“空”,因为地址0不是普通用户所能操作的地址单元,含地址0在内,内存(含ROM)归操作系统所用。
打开App,查看更多内容
随时随地看视频慕课网APP