char *p
float *a
int *q
等等,不同类型的指针,在同一个平台上所占字节数一样,,
但是定义指向某一数组的指针时候,要与数值的类型一样,因为决定了指针没几个字节去读取成一个值,,int,指针4个字节读取成一个数字,,char每一个字节读取成字符

   int i =1;

int *p = &i; // p指向i的地址,p中存储 整形变量的地址   *p 取存储地址上的值 ,*p= i 

int **q = &p // q 指向p的地址 ,q中存储的是指针变量的地址  *q 取得是 q存储的地址上值,就是i的地址,, 再取*  ,取i地址上值 , 

  3000   2000   1
q (4000) p(3000) i  (2000)

 

 

q里面存储的p的地址,p里面存储是i的地址 i的地址是2000;

*q  = 2000 = p

*p=**q =1