一.空指针和野指针
空指针:
1.用于给指针变量进行初始化
int *p=NULL;
2.空指针不可以进行访问
*p=100;//错误
野指针:指针变量指向非法空间,在程序中要避免出现
空指针和野指针不是我们申请的空间,不要随意访问
二、const修饰指针
const 修饰指针--常量指针
const int *p=&a;//const在指针前面,值不可改
指针的指向可以改,但指针指向的值不可以改
错误:*p=20;
正确:p=&b;
const修饰常量--指针常量
int * const p=&a;
指针的指向不可以改,但是指向的值可以改
错误:p=&a;
const int * const p=&a;
指针的指向和指针指向的值不可以改
记忆方法:const后面跟的啥啥就不能操作,比如const后面跟p那p就不能操作,跟*p那么*p就不能操作
*是指针,const是常量
三、指针和数组
int * p=arr;//访问的是数组的首地址
p++;//指针往后偏移四个字节,即一个数组元素
用*p来打印元素
for(int i; i <10;i++)
{cout <<*p<<endl;
p++;}
四、指针和函数
1.值传递:不改变实参
2.地址传递:可改变实参
void swap(int *p1, int *p2)
{int temp=*p1;
*p2=*p2;
*p2=temp;}
swap(&a,&b)