指针
指针的作用: 可以通过指针间接访问内存
int update=6;
int* p_update;
p_update=&update;
//变量update表示值,可以用&来获得地址
//变量p_update表示地址,用*获取该地址的值
C++中创建指针时,只会创建用来存储地址的内存,而不会分配用来储存指针指向的数据的内存,所以下述不允许
long *fellow;
*fellow=2233;
//但是可以用new分配内存
int *pn=new int;
释放内存
delete*pn;
空指针和野指针
空指针:指针变量指向内存中编号为0的空间
野指针:指针变量指向非法的内存空间
const修饰指针
//const修饰的是指针,指针指向可以改,指针指向的值不可以更改
const int * p1 = &a;
p1 = &b; //正确
*p1 = 100;//报错
//const修饰的是常量,指针指向不可以改,指针指向的值可以更改
int * const p2 = &a;
p2 = &b; //错误
*p2 = 100; //正确
//const既修饰指针又修饰常量
const int * const p3 = &a;
p3 = &b; //错误
*p3 = 100; //错误
指针算术
C++允许指针和正数加减,。加一的结果等于原来的地址加上指向对象占用的字节总数,减法同理。
允许两个指针相减,仅当两个指针指向同一个数组时有意义,得到两个元素的间隔