1、指针==地址;
2、获取任何变量的地址都是:&变量名;
3、*指针变量名,则间接访问到(跳到、解引用)指针指向的变量;
4、指针类型一样才能赋值;
如: char a; int *p=&a;
这就错误了,因为char类型是一个字节,而int是四个字节,这就越界了,所以错误了。
5、指针的大小
(x86)32位平台指针的字节都是4;
(x64)64位平台指针的大小都为8;
int a; &a->int *p;
double b; &b->double *p;
int *p; &p->.int **p;
int **p=&p;
**p内存P的值,即*pp=p;
6、定义二级指针是时,二级指针变量必须存放的也是指针变量。
如: int*p;
int **pp=&p;这里p必须为指针变量,否则编译不通过。
7、解引用(*p)
int a;
int b;
int c;
int d;
int *p1=&a;//a的地址存于p1中
int *p2=&b;//b的地址存于p2中
*p1=100;//a=100
*p1=200;//b=200
p1=&c;
p2=&d;
*p1=300;//c=300
*p2=400;//d=400
指针变量p内存指向变量的地址,*p存指向变量的内容。