一、指针定义并初始化与定义之后初始化的区别
指针定义时可以初始化,指针的初始化其实就是给指针变量赋初值(跟普通变量的初始化没有任何本质区别)
①指针定义并初始化的格式
②指针定义之后初始化,不可用*p=&a
二、野指针
①什么是野指针
野指针就是,在定义指针变量之后,没有初始化关联可用的变量(内存空间),就对指针进行解引用,从而造成无法预料的错误,使程序崩溃,因此野指针,就是指针所指向的位置是不可知的(随机的、不正确的、没有明确限制的)。
②如何避免野指针
在指针解引用之前,一定保证指针指向一个可用的内存空间,具体可根据以下四点来执行,就可以绝对避免野指针。
第一点:定义指针时,同时初始化为NULL
第二点:在指针解引用之前,先去判断这个指针是不是NULL
第三点:指针使用完之后,将其赋值为NULL
第四点:在指针使用之前,将其赋值绑定给一个可用地址空间
三、左值与右值
在赋值运算符左边的就被称为左值,在赋值运算符右边的就被称为右值
① 左值是指数据存储空间的内存地址,在上述代码中,a = b ,a就是左值强调的是存储空间,
② 右值是指变量存储空间内保存的数据,在上述代码中,a = b ,b就是右值强调的是存储空间b内保存的数据0,
③左值与右值的联系就是,左值=右值,将数据赋值给变量的存储空间,