大家好:
衷心希望各位点赞。
您的问题请留在评论区,我会及时回答。
一、空指针
空指针:指针变量指向内存中编号为0的内存空间。
用途:初始化指针变量。
注意:空指针指向的内存是不可以访问的。内存编号为0~255为系统内存,不允许用户访问。
代码示例:
#include <iostream>
#include <Windows.h>
using namespace std;
int main(void) {
int* p = NULL;
//打印指针变量p的值为0
cout << p << endl;
//不能访问空指针,会发生访问空指针异常,程序会崩溃
//cout << *p << endl;
system("pause");
return 0;
}
运行截图:
二、野指针
野指针:指针变量指向非法的内存空间。
注意:在程序中要尽量避免野指针。
代码示例:
#include <iostream>
#include <Windows.h>
using namespace std;
int main(void) {
//指针变量p指向内存地址编号为0x1100的空间
int* p = (int*) 0x1100;
//访问野指针报错,因为没有访问权限
cout << *p << endl;
system("pause");
return 0;
}
报错截图: