int a=1;
int *p;
p=&a;
指针p的值是a的地址
指针p指向的地址的值用*p表示
所以是*p等于1,而不是p等于1,p等于a的地址(&a)
学习指针最好的方法是画内存图
int a=1;
int *p;
p=&a; //将a的地址赋给p,这时p的内容就是a的地址,p就指向a,并不是把变量的值交给p,只是让p指向a,*p就等于a中的值
p=1;这样写是错误的,因为P是一个指针变量,只能存放地址,不能用于存放其他数值
指针 关键要形象化的理解
比如说我指向你 ,指的是你所在的位置
但代表的是你这个人
故
p只是一个地址
*p才代表一个值
p=(一个十六进制的数)