指针分为基本类型和特殊数据结构指针。
基本类型指针定义为:type * ptr ;
指针的实质是一个地址变量,即它存储的数据就是数据的地址。
调用方式为:* p=& 变量名 ,
const type* p ;表示p 它存放的是一个常量的地址,但是它是可变的。也就是说p它是存放常量地址的指针变量。
type * const p ;则表示p就是一个常量地址,它是不可变的,也就不可以对它赋值。所以在定义它的时候要给它初始化。
基本指针有一类特殊的,它就是数组指针,和指针数组
数组指针 是指针,定义方式为 type* p[] ;
指针数组 它是数组,每个元素是 指针 ,所以它是指向多维 数组的,
定义方式: type(*p)[n],它也表示p 指向一个n个元素的一个数组。
结构指针:
假如现在定义了一个结构体 A
struct A{
type1 a;
type2 b;
};
则结构体指针的定义为 A* p ;
调用方式为: p->a 或 (*p). a ;
函数指针:
函数指针归根揭底,它仍旧是指针,但它还是指向函数的,所以它有参数。故定义方式为:
return_type(*p)(parametre_list);
它的赋值为: p=function_name ;
调用方式为: p(parametre_list);
一类就是结构体成员指针:
因为它是隶属于结构体,所以它要含有域作用符 ,type struct_name::*p;
且 它不能单独使用,必须和结构体同时使用。