1.int *p;
定义的时候这个*,只是一个说明,说明p是一个指针
2.int a=1;
int *p=&a;
&是取地址,现在p这个指针变量,存储的内容就是a的地址
3.定义指针类型,需要和对应指向的数据类型一致
个人理解,虽然指针变量存的都是地址,但是int和char在内存中长度是不一样的,用不同的类型的指针,才能表示全它的整个地址。相当于附带表示了内存中的长度
int a=1;
int *p=&a;
char b='E';
char *p1=&b;
4.
int a=1;
int *p=&a;
*p的值和a的值是一致的。
这个时候的*,表示的是解引用。
*p=2;
这样修改之后,a也会变为2
5.指针和数组
数组的名字其实也是一个指针,指向数组的第一个元素的地址,也就是数组的基地址
int *ptr1=&myArray[0];
int *ptr2=myArray;
这两个是一个意思
6.指针++
ptr1++;
指针加加,并不是把里面的值+1,系统会根据指针的类型,然后指向下一个数据的第一个地址。