1.指针
指针是个变量,用于存放内存单元的地址(编号)。
2.一级指针
例如 int a=8; int* p=&a; p是一个一级指针,它存放的是变量a的地址,对p解引用得到的就是a的值。 int a[3]={1,2,3}; int* p=a;这里的p也是一个一级指针,存放的是数组的首地址,数组名就是数组的首地址,对p解引用得到的是数组的首元素。
一级指针存放的是一维数组名或者是单个变量的地址,对其解引用得到的就是这个地址中的元素。
3.二级指针
二级指针存放的是指针变量的地址。 例如: char s=‘s’; char* ps=&s; char** pps=&ps;
pps就是一个二级指针,它里面存放的是一级指针的地址,对它解引用可以得到一级指针的内容,也就是得到s的地址,再对一级指针解引用可以得到s中的内容。
4.指针和数组
数组是在一段连续的内存中存储的,数组名本身就是一个一级指针,通过指针的加法运算就可以访问数组中的每个元素。
5.指针数组
指针数组归根结底来说是一个数组,里面元素的数据类型都是指针。