文章目录
空指针
标准定义了NULL指针,它作为一个特殊的指针变量,表示不指向任何东西。要使一个指针为NULL,可以给它赋值一个零值。为了测试一个指针百年来那个是否为NULL,你可以将它与零值进行比较。
对指针解引用操作可以获得它所指向的值。但从定义上看,NULL指针并未指向任何东西,因为对一个NULL指针因引用是一个非法的操作,在解引用之前,必须确保它不是一个NULL指针。
问题思考:
如果对一个NULL指针间接访问会发生什么呢?
结果因编译器而异。
像VS就报错,像DEV这种牛逼的编译器就没事。
案例探索:不允许向NULL和非法地址拷贝内存
不允许向NULL和非法地址拷贝内存:
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
void test() {
char *p = NULL;
//给p指向的内存区域拷贝内容
strcpy(p, "1111")