1、指针变量保存某个内存单元的地址(同一台机器每个内存单元地址长度相同),指针变量需要的内存大小于数据类型无关
2、
int p[3]; // [int][int][int]
int *p[3]; // 指针数组,具有3个"int *"元素 [int *][int *][int *]
int (*p)[3]; // p指针,指向一块内存,这块内存包含3个int, {[int][int][int]}
int (*FuncMax)(int, int); // FuncMax指向一个函数的指针(该函数求两个int 的最大值)
int *FuncMax(int, int); // FuncMax 是一个指针。该函数的返回值是int *
3、void *
int a = 6;
void *p = &a;
cout << *p << endl; // error
void * 指针无法确定所指向内存区域的大小和类型,无法访问。在使用void *之前,必须转换成特定类型指针才能使用。
void * 通常使用在函数参数传递及函数返回。