1.指针:指针是一个特殊的变量,里面存储的数值指向内存空间的一个地址,指针可以有多级。
代码示例:
int p; //普通的整型变量
int *p; //从P 处开始,与*结合,说明P是一个指针,然后再与int结合,说明指针指向的内容的类型为int型.所以P是一个返回整型数据的指针
int a = 100;
int *p = &a; //指向了a的地址
int **p; //二级指针
int ***p; //三级指针
2.函数指针
代码实例:
int (*p)(int);
//从P处开始,先与指针结合,说明P是一个指针,
//然后与()结合,说明指针指向的是一个函数,
//然后再与()里的int结合,
//说明函数有一个int型的参数,
//再与最外层的int结合,
//说明函数的返回类型是整型,
//所以P是一个指向有一个整型参数且返回类型为整型的函数的指针
3.数组指针
代码实例:
int (*p)[3];
//首先从P处开始,先与*结合,
//说明P是一个指针然后再与[]结合(与"()"这步可以忽略,
//只是为了改变优先级),说明指针所指向的内容是一个数组,
//然后再与int 结合,说明数组里的元素是整型的,
//所以P 是一个指向由整型数据组成的数组的指针
4.指针数组
代码实例:
int *p[3];
//首先从P 处开始,先与[]结合,因为其优先级比*高,
//所以P 是一个数组,然后再与*结合,说明数组里的元素是指针类型,
//然后再与int 结合,说明指针所指向的内容的类型是整型的,
//所以P 是一个由返回整型数据的指针所组成的数组