c/c++ 指针
C++指针
1、在c++中创建指针时,计算机将分配用来存储地址的内存,但不会分配用来存储指针所指向的数据的内存。为数据提供空间是一个独立的步骤。
long * fellow; //创建一个用来分配地址的内存
*fellow = 233; //因为fellow没有被初始化,他可能指向任何地址 ×
2、不能使用delete来释放声明变量所获得的内存,只能用delete来释放使用new分配的内存。然而,对空指针使用delete是安全的。
int *ps = new int;
delete ps;
delete ps; //释放已经被释放过的内存块,导致不确定的结果
int jugs = 5;
int *pi = $jugs;
delete pi; //不能使用delete来释放声明变量所获得的内存
3、在c++中值为0的指针被称为空指针。
4、可以用两种不同的方式将const关键字用于指针。第一种方法是让指针指向一个常量对象,这样可以防止使用该指针来修改所指向的值;第二种方法是将指针本身声明为常量,这样可以防止改变指针指向的位置。
int sloth = 3;
const int * ps = &sloth; //方式一,a pointer to const int,pt指向一个const int,
//*pt的值为const,不能被修改,但可以将一个新地址赋给pt
int * const finger = &sloth;//方式二,a const pointer to int,
//finger只能指向sloth,但允许使用finger来修改sloth的值。