1、什么是指针
a、一个变量的地址称为该变量的指针
b、变量的指针就是变量的地址
c、用来存放变量地址的变量是指针变量
d 、“*”是指向,指针运算符(间接访问运算符)
e、”&“是取地址运算符
例如 &a为变量的a的地址,*p为指针变量p所指向的存储单元。
2、指针作为函数参数
void swap(int *p1,int *p2)
3、指针与数组
a、数组元素的指针就是数组元素的地址
b、数组名代表数组中的第一个元素
p+i和a+i就是a[i]的地址,也就是说*(p+i)=*(a+i)=a[i]
c、[]实际上是变址运算符,a[i]就是a+i×d的地址,然后找出地址所指向的单元中的值。
d、*p++,作用:先得到p指向的变量的值(即*p),然后再使p得值加1;
(*p)++表示p所指向的元素值加1;
*(++p):先使p的值加1,然后指向的变量。
4、用指针变量做函数参数接收数组地址
void select_sort(int array[] , int n)等价于void select_sort(int *array,int n)
5、用函数指针变量调用函数
定义指向函数的指针变量的方法
int (*p)(int,int)
p是指向函数的指针变量。
6、定义指针函数
类型名 *函数名(参数列表)
例如int *a(int x,int y);
7、指针数组
类型名 *数组名【数组长度】
每个数组元素都相当于一个指针变量
8、对象指针
对象空间的起始地址就是对象的指针,可以定义一个指针变量,用来存放对象的指针。
this指针:指向当前对象
return *this表示被调用的成员函数所在的对象